操作系统知识点
操作系统整理归纳
4.1.1 操作系统的概念
操作系统:是管理计算机软硬件资源的程序,同时它又是用户与计算机硬件的接口。
4.1.2 操作系统的构成
进程管理、内存管理、文件管理、输入/输出系统管理、二级存储管理、联网、保护系统、命令解释程序
4.2.1 操作系统的类别
经过多年的发展,操作系统多种多样。为提高大型计算机系统的资源利用率,操作系统从批处理,多道程序发展为分时操作系统。为了满足计算机处理实时事件的需要,就有实时操作系统。为适应个人计算机系统的需要又出现了桌面操作系统。为适应并行系统的需要,就有了多处理器操作系统。为满足网络和分布计算的需要,就有了网络操作系统和分布式操作系统。此外,还有为支持嵌入式计算机的嵌入式操作系统。
4.2.2 计算环境
从计算机诞生至今,操作系统总是与具体的计算环境相联系,它总是在某种计算环境中设置和使用,就目前来看计算环境可分为以下几类:
1. 传统计算环境
指普通意义下的独立或联网工作的通用计算机所形成的计算环境。
2.基于Web的计算环境
互联网的普及使得计算被延伸到Web环境。
3.嵌入式计算环境
嵌入式计算机就是安装在某些设备上的计算部件,其计算相对比较简单。
4.3.1 进程的概念
什么是进程?它与程序有什么区别?
程序:用户为完成某一个特定问题而编写的操作步骤。
进程:可以简单地被看作是正在执行的程序。但是进程需要一定的资源来完成它的任务(例如CPU时间、内存、文件和I/O设备) 。
进程与程序的区别在于进程是动态的、有生命力的,而程序是静态的。一个程序加载到内存,系统就创建一个进程,程序执行结束后,该进程也就消亡了。
在计算机中,由于多个程序共享系统资源,就必然引发对CPU的争夺。如何有效地利用CPU资源,如何在多个请求CPU的进程中选择取舍,这就是进程管理要解决的问题。
4.3.3 进程控制块PCB(略)
为了控制进程,操作系统就必须知道进程存储在哪里,以及进程的一些属性。
进程控制块是进程实体的一部分,是操作系统中记录进程的专用数据结构。一个新的进程创建时,操作系统就会为该进程建立一个进程控制块。操作系统根据进程控制块对并发进程进行控制。
4.3.4 进程调度及队列图
计算机采用多道程序的目的是使得计算机系统无论何时都有进程运行,单处理器的计算机在某一时刻CPU只能运行一个进程,如果存在多个进程,其它进程就需要等待CPU空闲时才能被调度执行。
当一个进程处于等待或CPU时间片用完时,操作系统就会从该进程中拿走CPU控制权,然后再交给其它进程使用,这就是进程的调度。
4.3.5 CPU调度及其准则
在设计CPU调度程序时主要应该考虑的准则包括:
(1) CPU使用率。让CPU尽可能地忙。
(2) 吞吐量。让CPU在一定时间内完成的进程数尽可能多。
(3) 周转时间。让进程从提交到运行完成的时间尽可能短。
(4) 等待时间。让进程在就绪队列中等待所花时间之和尽可能短。
(5) 响应时间。让进程从提交请求到产生第一响应之间的时间尽可能短。
主要的CPU调度算法
1、 先到先服务
2、 最短作业优先
3、 优先权
4、 轮转
5、 多级队列
6、 多级反馈队列
4.3.7 进程的同步与互斥
进程的同步就是指相互协作的进程不断调整它们之间的相对速度,以实现共同有序地推进。
换句话说,在操作系统中,允许多个进程并发运行。然而,有些进程之间本身存在某种联系,它们在系统中需要一种协作,以保证进程能正确有序地执行并维护数据的一致性。
在操作系统中,可能存在着多个进程。而系统中一些资源一次只允许一个进程使用,这类资源被称为临界资源。在进程中访问临界资源的那段程序称为临界区。当一个进程进入临界区执行时,其它进程就不允许进入临界区执行,否则就会导致错误结果。由此得出:
多个进程并发执行时,只允许一个进程进入临界区运行,这就是进程的互斥。
例如:多个进程在竞争使用打印机时表现为互斥。
一个文件可供多个进程共享,其中有一个进程在写操作时,其它进程则不允许同时写或读,表现为互斥。
4.3.8 进程的死锁及处理方法
在多道程序设计中,多个进程可能竞争一定数量的资源。一个进程在申请资源时,如果所申请资源不足,该进程就必须处于等待状态。如果所申请的资源被其它进程占有,那么进程的等待状态就可能无法改变,从而形成进程之间相互一直等待的局面,这就是死锁。
竞争资源引起死锁
引起死锁的四个必要条件:
• 互斥:任一时刻只能有一个进程独占某一资源,若另一进程申请该资源则需延迟到该资源释放为止。
• 占有并等待:即该进程占有部分资源后还在等待其它资源,而该资源被其它进程占有。
• 非抢占:某进程已占用资源且不主动放弃它所占有的资源时,其它进程不能强占该资源,只有等其完成任务并释放资源。
• 循环等待:在出现死锁的系统中,一定存在这样一个进程链,其中每个进程至少占有其它进程所必需的资源,从而形成一个等待链。
处理死锁问题的三种方式:
• 可使用协议预防和避免死锁,确保系统从不会进入死锁状态。
• 可允许系统进入死锁状态,然后检测出死锁状态,并加以恢复。
• 可忽略进程死锁问题,并假装系统中死锁从来不会发生。即没有必要把精力花在小概率事件上。
处理死锁优先考虑的顺序:先预防和避免 再检测和恢复