进程基本概念
冯诺依曼体系结构
当今的计算机、服务器,大都采用冯诺依曼体系结构。
冯诺依曼体系结构的两个重要思想
1.所有的数据采用二进制存储。
原因:通过高低电平进行表示,更加稳定,技术上容易实现。
2.数据都保存在存储器中。
计算机硬件组成
输入单元:键盘、鼠标等。
中央处理器(CPU):包括运算器和控制器等。
输出单元:显示器等。
既是输入单元,又是输出单元:网卡等。
注意!!!
存储器指的是内存。
CPU只能对内存进行读写,不能访问外设(输入/输出设备)。
外设输入/输出数据,也只能写入内存或从内存中读取。
所有设备都只能直接和内存打交道。
操作系统
操作系统:
做管理工作的,进行软硬件资源管理(硬件:冯诺依曼体系结构中的所有设备。软件:安装/卸载软件;在系统层面,对文件,进程,驱动进行管理)
操作系统的概念
操作系统 = 操作系统内核 + 应用
任何计算机系统,都包含一个基本的程序集合,称为操作系统。
操作系统包括
1.内核:进程管理、内存管理、文件管理、驱动管理
2.其他程序:函数库,shell程序等
操作系统的目的
1.与硬件进行交互,管理所有的软硬件资源。
2.为应用程序,提供一个良好的执行环境。
对上:给用户提供稳定高效的环境;对下:管理软硬件资源。
操作系统的定位
一款纯正搞管理的软件。
所谓管理,就是要有决策权。(注意区分决策与执行)
例:校长、辅导员、学生
校长(管理者):操作系统
辅导员(执行者):驱动
学生(被管理者):部分软件、底层硬件
OS总结
计算机软硬件管理:先描述,再组织。
描述:struct
组织:链表或其他数据结构。
系统调用和库函数
1.在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。
2.系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。
库函数与系统调用
具有上下级关系,库函数(用户级别)可能调用系统调用。
进程管理
进程概念
程序的一个执行实例,正在执行的程序等。
内核观点:担当分配系统资源(CPU时间、内存)的实体。
进程与程序之间的区别
程序:静态的,本质是一个文件,存储于磁盘中。
进程:动态的,程序运行之后,叫做进程,由操作系统管理。
进程组织
Linux系统下,所有运行的进程,都以task_struct链表的形式存在内核里。
PCB(进程的描述)
PCB:process control block
进程信息,被存放于进程控制块中(进程相关属性的集合)。
Linux下,PCB的组织形式为:task_struct
文件 = 内容 + 属性
进程 = 对应的文件 + 进程属性
由于操作系统允许多个进程同时运行,操作系统需要对进程进行管理:先描述,再组织。
task_struct
Linux下,PCB的组织形式为:task_struct
它是Linux内核的一种数据结构,会被加载到内存中,其中包含着进程的信息。
task_struct内容
PID:进程标识符
进程标识符是描述该进程的唯一标识符。
通过