操作系统简要笔记(一)
来源:互联网 发布:小米下载软件 编辑:程序博客网 时间:2024/05/28 03:01
操 作 系 统
第一章 操作系统引论
操作系统的发展历程:人工操作方式、单道批处理系统、多道批处理系统(注意出题)、分时系统、实时系统。
操作系统的基本特性:并发性(进程和线程实现)、共享性(互斥共享方式、同时访问方式)、虚拟技术(时分复用、空分复用)、异步性(进程的执行一般停停走走)。
操作系统主要功能:处理机管理(进程控制、进程同步、进程通信、调度),存储器管理(内存分配、内存保护、地址映射、内存扩充),设备管理(缓冲管理、设备分配、设备处理),文件管理(文件存储空间的管理、目录管理、文件的读写管理和保护),操作系统与用户之间的接口(用户接口、程序接口)。
第二章 进程管理
1. 进程的特征与定义
进程实体的构成:程序段、数据段和进程控制块PCB。
进程的实质是进程实体的一次执行过程。
进程的几种状态:创建、就绪(进程已分配到除CPU以外的所有必要资源)、执行、阻塞(正在执行的进程由于发生某事件而暂时无法继续执行,放弃CPU而处于暂停状态,典型事件有请求I/O,申请缓冲区等)、挂起(进程在就绪或者执行状态时,发现有可疑问题时,希望暂停则进入挂起状态,如父进程请求挂起自己某个子进程,系统负荷调节需要等)、终止。
2. 进程控制块
PCB随着进程的创建而建立,随着进程的撤销而回收。PCB常驻内存,系统将所有的PCB组成若干个链表,存放于操作系统专门开辟的PCB区。
PCB主要包括的信息:进程标识符(唯一识别进程)、处理机状态(主要是各种寄存器中的内容组成)、进程调度信息(进程状态、优先级、进程调度所需的其它信息、事件即阻塞原因)、进程控制信息(程序和数据的地址、进程同步和通信机制、资源清单、链接指针)。
PCB的组织方式:链接方式(同一状态的PCB链接成一个队列,并按优先级排列)、索引方式(不同的状态建几张索引表,每个索引表记录各个PCB的地址,而在内存中用一些专用单元保存各索引表的地址)。
3. 进程控制
(1)进程的创建
引起创建进程的事件:用户登录、作业调度、提供服务、应用请求。
进程创建的过程:申请空白PCB,为新进程分配资源,初始化PCB,新进场插入就绪队列。
(2)进程的终止
引起进程终止的事件:正常结束、异常结束、外界干预。
进程终止的过程:根据被终止进行的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态;若被终止的进程正处于执行状态,应立即终止并置调度标志为真,用于指示该进程被终止后应重新进行调度;若该进程还有子孙进程,还应将其所有子孙进程予以终止;将被终止进程所用于的全部资源归还给其父进程或系统;将被终止进程从所在队列中移出,等待其它程序来搜集信息。
(3)进程的阻塞与唤醒
引起进程阻塞和唤醒的事件:请求系统服务(请求资源)、启动某种操作(I/O操作)、新数据尚未到达(等待数据)、无新工作可做。引起阻塞的事件完成后就会唤醒被阻塞的进程。
进程阻塞的过程:先立即停止执行,把PCB中的现行状态由“执行”改为“阻塞”,并将PCB插入阻塞队列。最后,转调度程序进行重新调度,将处理机分配给另一就绪进程并进行切换,保留被阻塞进程的处理机状态。
进程唤醒的过程:首先把被阻塞的进程从等待该事件的阻塞队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将该PCB插入到就绪队列中。
(4)进程的挂起与激活
引起进程挂起的时间:用户进程请求将自己挂起、父进程请求挂起某个子进程。
进程挂起的过程:首先检查被挂起进程的状态,若处于活动就绪状态,便改为静止就绪,若处于活动阻塞状态,便将其改为静止阻塞。
进程激活的过程:与挂起相反。
4. 进程同步
(1)两种形式的制约关系
间接相互制约关系:源于进程间的共享某资源。
直接相互制约关系:源于进程间的合作。
(2)临界资源、临界区
(3)信号量机制:整型信号量、记录型信号量、AND型信号量。
wait和signal操作,用于进程同步机制。
(4)管程:代表共享资源的数据结构,以及由对该共享数据结构实施操作的一组过程所组成的资源管理程序,共同构成了一个操作系统的资源管理模块。其中的类似信号量的称为条件变量。
5. 经典进程同步问题
生产者-消费者问题
哲学家进餐问题
读者-写者问题
6. 进程通信
进程通信,是指进程之间的信息交换。
进程通信类型:
共享存储器系统(基于共享数据结构的通信方式、基于共享存储区的通信方式);
消息传递系统(以格式化的消息为单位,称为报文);
管道通信(管道是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,又名pipe文件)。
消息传递通信的实现方法:直接通信方式、间接通信方式。
7. 线程
(1)线程的引入是为了使OS具有更好的并发性。
(2)线程和进程的比较:调度(线程作为调度和分派的基本单位,而进程作为资源的拥有单位);并发性(一个进程可以设置多个线程,线程可以并发);拥有资源(线程不拥有资源,但可以访问其隶属进程的资源);系统开销(线程的切换只需要保存和设置少量寄存器内容,不涉及存储器管理方面的操作)。
(3)线程的状态参数:寄存器状态、堆栈、线程运行状态、优先级、线程专有存储器、信号屏蔽;线程的运行状态:执行状态、就绪状态、阻塞状态。
第三章 处理机调度与死锁
1. 处理机调度层次
处理机调度:主存中有多个进程,动态地将处理机分配给各进程。
(1)高级调度
又称作业调度或长程调度。主要功能是把外存上处于后备队列中的那些作业调入内存。
作业、作业控制块JBC。
(2)低级调度
又称进程调度或短程调度。主要功能是决定就绪队列中的哪个进程获得处理机。
(3)中级调度
又称中程调度。目的是提高内存利用率和系统吞吐量。使那些暂时不能运行的进程不再占用内存资源,将它们调至外存上等待。实际上就是存储器管理中的对换功能。
2. 调度队列模型
仅有进程调度的调度队列模型
具有高级和低级调度的调度队列模型
同时具有三极调度的调度队列模型
3. 调度准则
面向用户的准则:周转时间短、响应时间快、截止时间的保证、优先权准则;
面向系统的准则:系统吞吐量高、处理机利用率好、各类资源的平衡利用。
4. 调度算法
进程:到达时间、服务时间、开始执行时间、完成时间、周转时间、带权周转时间。
(1)先来先服务调度算法(FCFS)
有利于长作业(进程),而不利于短作业。
(2)短作业(进程)优先调度算法(SJF)
对长作业不利,不考虑作业的紧迫程度。
(3)高优先权优先调度算法(FPF)
非抢占式和抢占式
静态优先权和动态优先权(优先权是随等待时间增长动态变化的)
优先权 = 响应比 = (等待时间 + 要求服务时间)/(要求服务时间)
(4)时间片轮转算法(RR)
选择很小的时间片有利于短作业,时间片太长就退化为FCFS算法。
(5)多级反馈队列调度算法
设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个次之,其余各队列优先级逐个降低。不同优先级队列的执行时间片不同,优先级越高的队列的时间片越小。
5. 实时调度算法
应用于实时系统,实时调度需要提供必要的信息:就绪时间、开始截止时间和完成截止时间、处理时间、资源要求、优先级等。
(1)最早截止时间优先即EDF算法
非抢占式调度方式用于非周期实时任务
抢占式调度方式用于周期实时任务
(2)最低松弛度优先即LLF算法
根据任务紧急(松弛)程度来确定任务优先级。
某任务在200ms时必须完成,而它本身所需运行时间为100ms,那么其紧急程度为100ms。
6. 产生死锁的原因和必要条件
(1)产生死锁的原因
竞争资源引起进程死锁:竞争非剥夺性资源、竞争临时性资源(由一个进程产生,被另一个进程使用短暂时间后便无用的资源)。
进程间推进顺序非法:进程的异步性导致推进顺序不当会造成死锁。
(2)产生死锁的四个必要条件
互斥条件(进程对分配的资源进行排它性使用)、请求和保持条件(进程阻塞时对已持有的资源保持不放)、不剥夺条件(资源不能被剥夺,只能自己使用完时自己释放)、环路等待条件(发生死锁时必然存在一个进程—资源的环形链)。
(3)处理死锁的基本方法
预防死锁,避免死锁,检测死锁,解除死锁。
7. 预防死锁的方法
预防死锁和避免死锁实质都是通过限制条件来预防死锁,它们的区别:为预防死锁所施加的限制条件较严格,往往会影响进程的并发执行,为避免死锁所施加的限制条件较宽松,有利于进程的并发执行。
破坏四个必要条件:摒弃“请求和保持”条件、摒弃“不剥夺”条件、摒弃“环路等待”条件。
利用银行家算法(可利用资源向量、最大需求矩阵、分配矩阵、需求矩阵)避免死锁,保证每次资源的分配都是安全状态。
8. 死锁的检测与解除
(1)死锁的检测
资源分配图(进程为圆节点,资源为方框节点,边为进程与资源需求情况)
死锁定理(若能消除资源分配图中所有边,使所有进程节点都成为孤立节点,则无死锁)
(2)死锁的解除
剥夺资源
撤销进程
- 操作系统简要笔记(一)
- 操作系统简要笔记(二)
- Bluetooth简要笔记(一)
- 操作系统笔记(一)
- 操作系统笔记(一)
- 操作系统笔记(一)
- redis杂记(一) --简要命令笔记
- 操作系统学习笔记(一)
- 操作系统学习笔记(一)
- 数据库SQL Server2012笔记(一)——简要介绍
- (一)操作系统概论复习要点笔记
- 操作系统学习笔记(一)
- 操作系统复习笔记(一)
- 操作系统学习笔记一
- 操作系统学习笔记一
- 操作系统简介(笔记一)
- Hadoop学习笔记一 简要介绍
- Hadoop学习笔记一 简要介绍
- C 语言课程设计 最终答辩版 学生通讯录管理系统
- 自定义验证器——用Struts2框架以框架师的思维灵活做好该事情
- 浮点数在计算机中存储方式
- 报数指出出局的人
- C/C++之回调函数
- 操作系统简要笔记(一)
- net.sf.json.JSONException: java.lang.reflect.InvocationTargetException解决方法
- 查找非素数
- Access连接数据源配置(新手必知)
- 通过java程序写的一个调色板(rgb格式)
- Spark-1.0.0 standalone分布式安装教程
- android模拟器 出错:X Error of failed request: BadRequest (invalid request code or no such operation)
- 手机登陆画面-splash
- ASP:ImageButton控件(按钮类型控件)