操作系统笔记

操作系统  
- 系统资源的管理者 
    - 提供的功能
        - 处理机管理
        - 存储器管理
        - 文件管理
        - 设备管理
    - 目标:安全、高效 
- 作为用户和计算机硬件之间的接口  
    - 提供的功能  
        - 命令接口
            - 联机命令接口
            - 脱机命令接口
        - 程序接口  
        - GUI(图形用户界面)
    - 目标:方便用户使用  

操作系统的特征  
- 并发
- 共享
- 虚拟
- 异步

并发  
并发:指两个或多个事件在同一时间间隔发生。这些事件宏观上是同时发生的,但微观上是交替发生的。  
并行:指两个或多个事件在同一时刻同时发生。  

操作系统的并发性指计算机系统中同时存在着多个运行的程序。  

共享  
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。  
两种资源共享方式
- 互斥共享方式:一段时间内只允许一个进程访问资源。  
- 同时共享方式:允许一个时间段内由多个进程“同时”对它们进行访问。  

虚拟  
是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的。  
虚拟技术:
- 空分复用技术  
- 时分复用技术  

异步  

计算机系统的层次结构  
 

中断  
1、当中断发生时,CPU立即进入核心态  
2、当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理  
3、对于不同的中断信号,会进行不同的处理  

中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。(唯一途径)  

核心态->用户态的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”。  

系统调用  
- 设备管理
- 文件管理
- 进程控制
- 进程通信
- 内存管理  

进程  
进程实体(静态的):程序段、数据段、PCB  
进程(动态的):是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。  

PCB:进程控制块  
用来描述进程的各种信息(如程序代码存放位置),系统为每个运行的程序配置一个数据结构。

 

 进程的特征  
- 动态性
- 并发性
- 独立性
- 异步性
- 结构性
 


创建原语  
1、申请空白PCB   
2、为新进程分配所需资源  
3、初始化PCB  
4、将PCB插入就绪队列  

进程通信
- 共享存储
- 消息传递
- 管道通信  

线程  
线程是一个基本的CPU执行单元,也是程序执行流的最小单位。线程是调度的基本单位。  
引入线程后,进程只能作为除CPU之外的系统资源的分配单元。  

线程是处理机调度的单位
进程是资源分配的单位

死锁  
- 定义  
在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象。  
- 产生的必要条件  
    - 互斥条件  
    对必须互斥使用的资源的争抢(如哲学家的筷子、打印机设备)。
    - 不剥夺条件  
    不由其他进程强行夺走,只能主动释放。
    - 请求和保持条件  
    进程已经保持了一个资源,去请求新的资源,对自己的资源保持不放。  
    - 循环等待条件  
    进程资源的循环等待链。

预防死锁  
破坏互斥条件、破坏不剥夺条件、破坏请求和保持条件、破坏循环等待条件。  
1、把只能互斥使用的资源改造为允许共享使用。例如用SPOOLing技术将打印机改造为共享设备。  
2、方案1 进程得不到满足时,主动释放  
方案2 操作系统协调,强行剥夺  
3、静态分配方法,即进程在运行前一次申请完它所需要的全部资源  
4、顺序资源分配法,给系统资源编号,按编号递增顺序申请,相同编号的一次申请完。  

 避免死锁  
银行家算法:在资源分配之前预先判断这次分配是否会导致系统进入不安全状态,以此决定是否答应资源分配请求。  

死锁的检测和解除:  
资源分配图:依次消除与不阻塞进程相连的边,直到无边可消。  

解除死锁的方法:  
- 资源剥夺法  
- 撤销进程法
- 进程回退法

如何决定“对谁动手”:
- 进程优先级
- 已执行时间
- 还要多久才完成
- 进程已经使用了多少资源
- 进程是交互式还是批处理式的
原文地址:https://www.cnblogs.com/amberwang2018/p/13883378.html