操作系统
2022-02-23 20:03:39 23 举报
AI智能生成
计算机操作系统相关知识总结,面试用,考试不够用。
作者其他创作
大纲/内容
操作系统引论
操作系统的定义
操作系统是配置在计算机上的第一层软件,是对硬件系统的首次扩充
操作系统的目标和作用
目标
方便性、有效性、可扩充性、开放性
作用
1、作为用户与计算机硬件系统之间的接口
命令方式
系统调用方式
图标-窗口方式
2、计算机系统资源的管理者
3、实现了对计算机资源的抽象
操作系统的基本特性
并发
并行与并发
并行是指两个或多个事件在同一时刻发生。
并发是值两个或两个事件在同一时间间隔内发生
在多道程序环境下,并发是指在一段时间内宏观上有多个程序在同时运行,但在单机处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行
共享
虚拟
异步
进程的描述和控制
程序并发执行的特征
间断性
失去封闭性
运行结果不可再现性
进程定义的引入
在多道程序环境下,程序的执行属于并发执行,此时它们将失去其封闭性,并具有间断性,以及其运行结果不可再现性的特征。由此决定的通常的程序是不能参与并发执行的,否则,程序的运行也就失去了意义。为了能使程序并发执行,并且可以对并发执行的程序加以描述和控制,引入了进程的概念。
进程的结构
程序段+相关数据段+PCB
PCB是进程存在系统中的唯一标志
进程的标准定义
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
进程的特征
动态性
由创建而生,由调度而执行,有撤销而消亡
并发性
多个进程实体同时存在于内存中,且能在同一时间段内同时运行
独立性
进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位
异步性
进程的状态
创建
就绪
执行
阻塞
终止
进程的控制
进程控制一般都是由OS内核中的原语来实现的
原语:若干条指令组成,用于完成一定的功能的过程,它们是原子操作,要麽全部完成,要麽全部不完成
进程同步
进程同步的基本概念
对多个相关进程在执行次序上进行协调,使并发执行的程序之间按照一定的规则共享系统资源,使程序的执行具有可再现性
同步机制遵循的规则
空闲让进
临界区资源没被使用,可以进程使用
忙则等待
临界区资源被使用,其他进程必须等待
有限等待
保证等待的进程在有限的时间能获得资源的使用权,防止死等状态
让权等待
当进程获得不了资源使用权时,应该立即释放处理机,避免进程陷入忙等状态
硬件同步机制
关中断
Test and Set指令
Swap指令
信号量机制
整型信号量
记录型信号量
AND型信号量
信号量集
管程机制
管程的定义
一个管程定义了一个数据结构和能为并发进程锁执行的一组操作,这组操作能同步进程和改变管程中的数据
经典进程同步问题
生产者消费者问题
哲学家就餐问题
进程通信
共享存储器系统
共享数据结构
共享存储区
管道通信系统
消息传递系统
直接通信
间接通信
客户机-服务器系统
Socket
RPC
进程调度方式
抢占式
非抢占式
算法:
轮转调度算法
优先级调度算法
多队列调度算法
多级反馈队列调度算法
基于公平原则的调度算法
线程
线程的引入
如果说引入进程的目的是为了使程序能够并发执行,以提高资源利用率和系统吞吐量,那么,在操作系统中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性
线程的基本概念
比进程更小的基本单位,用以提高程序并发执行的程度,以进一步改善系统的服务质量
tip:一个误区:传统OS中,进程是作为独立调度和分派的基本单位,因而进程是能独立运行的基本单位。但是在引入线程的OS中,已把线程作为调度和分派的基本单位,因而线程是能独立运行的基本单位
进程和线程直接的比较角度
调度
引入线程的OS中,线程作为调度单位
资源
引入线程的OS中,进程作为资源分配单位
并发
线程之间并发
进程之间并发
独立性
系统开销
线程的状态
执行
就绪
阻塞
线程的数据
TCB
程序计数器
堆栈
寄存器
线程的实现方式
内核支持线程
用户级线程
线程之间的同步机制
互斥锁mutex
信号量
条件变量
线程之间的通信方式(参考juc)
共享内存
消息传递
由于多线程共享地址空间和数据空间,所以多个线程间的通信是一个线程的数据可以直接提供给其他线程使用,而不必通过操作系统(也就是内核的调度),线程间通信的目的主要是用于线程同步,所以线程没有像进程通信中的用于数据交换的通信机制
死锁
死锁的起因,通常是源于多个进程对资源的争夺,不仅对不可抢占资源进行争夺时会引起死锁,而且对可消耗资源进行争夺时,也会引起死锁
死锁的定义
如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程是死锁的
死锁产生的条件
互斥
一段时间内,某资源只能被一个进程占用
请求和保持
获得资源的进程可以发起新的资源请求,若新的资源被占用,进程被阻塞,但是原本占有的资源不会释放
不可抢占
进程已经获得的资源在未使用完成之前不能被其他进程抢占,只能自己释放
循环等待
发生死锁时,必然有个进程——资源的循环链
处理死锁的方法
预防
破坏请求和保持
破坏不可抢占
破坏循环等待
避免
系统安全状态
银行家算法
检测
资源分配图
解除
抢占资源
终止进程
作业调度算法
先来先服务
短作业优先
优先级调度算法
高响应比优先调度算法
0 条评论
下一页