目录
操作系统(OS)
进程
操作系统(OS)
- 概念
操作系统即os,是一款软件。 任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。
操作系统的本质是一种进行软硬件管理的软件
笼统的理解,操作系统包括: 内核(kernel) , 其他程序
- 内核(进程管理,内存管理,文件管理,驱动管理)
- 其他程序(例如函数库,shell程序等等)
- 设计OS的目的
手段: 通过对下的软硬件资源的管理,使软硬件资源 稳定的, 高效的 , 安全的 ,能进行良好的工作
目的: 操作系统对上要给用户提供一个稳定的,高效的,安全的运行环境
操作系统是一个层状结构
三. OS如何进行管理
管理的本质就是对数据进行管理
操作系统通过驱动程序获取底层硬件的数据,从而对硬件做管理就转换为操作系统对数据的增删查改, 底层硬件通过驱动程序获得操作系统下达的命令。
任何计算机管理的思路->先描述,再组织。 先描述是指 将事务转化为对应的模型,然后通过数据结构等对其进行组织。
为什么现在所有的主流面向对象语言都需要提供:1. 面向对象 2. 标准库,eg:stl
因为: 1.面向对象 提供了 “先描述” 的能力 2. 标准库 提供了 “再组织” 的能力
上层用户不能绕过操作系统直接访问硬件,即程序不能直接访问硬件,用户对硬件进行写入时都需要经过操作系统。
操作系统对必须向上提供接口,方便上层使用---开放(只开放),system call(即系统调用接口),因为操作系统是c语言写的,因此提供的这些接口也只是c语言接口
用户操作接口 是 将 system call 封装成各种库, eg: glibc , libc++库 等都是 对 system call 的一些接口进行了封装
四. 定位
在整个计算机软硬件框架中,操作系统的定位是:一款纯正的“搞管理”的软件
进程
进程管理---先描述,再组织。 先描述出 “进程“ , 再对”进程“进行管理
操作系统(kernel) 通过 进程的属性数据 来对 进程进行管理。
- 概念
内核观点: 担当分配系统资源(CPU时间,内存)的实替
课本概念: 程序的一个执行实例,正在执行的程序等。
2.具体解释进程
操作系统内核kernel 是第一个被加载到内存的程序。
磁盘的程序 要被 加载到 内存中(即input), 内存中 加载 myexe的代码和数据。
由于 操作系统内核kernel 要进行 进程管理 ,进程管理 需要 进程的属性, 因此 操作系统 为了管理进程, 操作系统会在进程被加载到内存的同时 创建 PCB 来 描述 进程(即存储进程的属性) , 每个PCB内存储了对应的进程属性, kernel 通过 进程的属性 来调控,调度 对应的进程 , 每个 PCB 链接起来,形成队列。
Tast_struct 是Linux下的PCB的描述
进程 = 内核数据结构(PCB) + 代码和数据
为什么要有PCB? 因为操作系统要管理进程,必须要先描述,再组织。 必须用PCB来把 代码和数据 进行描述 并 进行组织。