操作系统快速入门
一.绪论
特征:并发、异步、共享、虚拟
- 并发:同一时间段内,交替执行某个任务
- 异步:多道程序并发执行,每个程序会不可预知的方式间隔运行
- 共享:多个进程访问共同资源
- 虚拟:物理上的一个CPU虚拟为多个逻辑上的CPU,物理内存一段地址映射为多个逻辑上的内存
功能:调度管理、存储管理、设备管理、文件管理
- 调度管理:进程控制、进程同步、进程通信、死锁处理、调度管理
- 存储管理:内存分配与回收、地址映射、资源共享、资源扩充
- 设备管理:用户通过I/O向CPU发起指令,从而访问计算机资源
资源共享根据属性可分为两种形式:
互斥共享形式 (当资源被程序A占用时,其他想使用的话只能等待,只有进程A使用完以后,其他进程才可以使用该资源)
同时访问形式 (某种资源在一段时间内并发地被多个程序访问,这种“同时”是宏观的,从宏观去看该资源可以被同时访问)
提供用户与计算机之间的接口
- 命令接口:通过控制台或终端向计算机输入指令提供对应的服务
- 程序接口:使用系统调用请求操作系统提供服务
- 图形接口:提供友好的操作界面访问计算机资源
运行机制:系统调用、内核态与用户态
- 系统调用:系统调用都是通过中断实现的,调用服务时通过中断从用户态切换到内核态,执行中断服务程序将结果返回到用户态
- 内核:是操作系统的管理者,可执行特权命令
- 中断处理过程:开启断点,保护程序现场,引出中断服务程序,开中断,执行中断服务程序,关中断,恢复现场
二. 进程管理
进程:进程是程序的运行过程,是系统进行资源分配和调度的一个独立单位;
进程可以控制程序的并发执行,能够通过进程同步实现操作系统的并发性和共享性;
进程是动态运行的而程序是静态的,进程是竞争计算机资源的基本单位。
线程:线程是CPU调度和分派的基本单位,一个进程由一个或多个线程组成,线程依赖于 进程而存在;
进程有自己的独立地址空间,线程共享所属进程的地址空间;
进程是拥有系统资源的一个独立单位,而线程自己基本上不拥有系统资源;
进程管理:进程有自己的独立地址空间,一个进程阻塞时,不影响其他进程的状态,因此多 进程更加健壮;多线程程序有一个程序阻塞会影响其他线程,所持的锁没被释放, 其他线程也会继续等待,导致整个程序异常
进程通信:两个进程同时共享一块内存,可以对内存上的数据修改和读取,达到通信的目的
管道通信
管程的组成:定义的数据结构、定义在这组数据上的操作、共享数据的初始值
管道通信: 为了协调双方(发送进程和接受进程)的通信,必须提供依以下的机制确认对 方的存在:
1.任何时刻,只能有一个进程进入管程执行
2.一组数据和定义在这组数据上的操作,可以单独被一个进程访问资源,数据只能单向传输,只要里面有数据,就可以读出,只要里面有空位,就可以写入,等一个进程访问结束,释放管程资源
3.管程中的共享变量只能被管程的过程访问,任何外部过程不能访问
4.管程中必须包含同步信息
临界区:访问资源的那段代码,任意时刻只允许一个线程对临界资源进行访问
拥有临界区对象的线程可以访问该临界资源,其它试图访问该资源的线程将被挂起,直到临界区对象被释放
进程状态及转换过程:
进程同步:某个进程需要另一个进程提供的消息,获得消息之前进入阻塞态
进程互斥:多个进程在同一时刻只有一个进程能进入临界区(进程访问资源的代码)
进程同步机制:
- 空闲让进:当无进程处于临界区,可允许一个请求进入临界区的进程立即进入自己的临界区
- 忙着等待:当临界区内已有进程,所有企图进入临界区的进程必须等待
- 有限等待:应保证该进程能在有限时间内进入临界区
- 让权等待:当进程应该进入而不能进入临界区时,应释放处理机资源,避免进入忙等状态(一直尝试进入,其他进程处于阻塞状态),其他进程可以进入临界区
进程唤醒:允许一个线程在处理完一个任务后,主动唤醒另外一个线程执行任务
把被阻塞的进程从等待该事件的阻塞队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将该PCB插入到就绪队列中
PCB(Process Control Block):系统中存放进程的管理和控制信息的数据结构
PCB的作用是使一个在多道程序环境下不能独立运行的程序,成为个能与其他进程并发执行的进程
信号量:每增加一个进程对共享资源的访问,可用资源计数减1,只要当前可用资源计数大于0,就可以发出信号量信号;如果为0,则将进程放入阻塞队列中等待
互斥量:只有拥有互斥对象的进程才有访问互斥资源的权限,保证互斥资源不会同时被多个进程访问
当前拥有互斥对象的进程处理完任务后必须将互斥对象交出,以便其他进程访问该资源
死锁:两个或两个以上的进程在执行中,因争夺资源而造成的一种互相等待的现象
死锁原因:
- 系统资源不足:系统资源数量不足以满足多个进程运行的需要,多个进程会因争夺资源而陷入僵局
- 进程推进顺序不当:进程在运行过程中,请求和释放资源的顺序不当
- 信号量使用不当:一个进程访问完系统资源后没恢复计数,则其他进程一直处于阻塞状态
处理方法:避免死锁、检测死锁、预防死锁、解除死锁
三. 存储管理
功能:内存的分配和回收、地址变换、扩充内存、存储保护
应用程序执行过程:编译、链接、装入
程序链接方式:静态链接、运行时动态链接、装入时动态链接
内存连续分配管理方式:
单一连续分配:简单、无外部碎片,只适用于单用户、单任务的操作系统中,有内部碎片,存储器的利用率极低
固定分区分配:多道程序存储管理方式,将用户内存空间划分为若干个固定大小的区域,每个分区只装入一道作业,是一个循环队列结构
动态分区分配:在进程装入内存时,根据进程的大小动态地建立分区
四. 设备管理
参考链接:https://zhuanlan.zhihu.com/p/124284469