本文主要是介绍系统分析员考试复习笔记-3:第三章 操作系统基本原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 第三章操作系统基本原理(P116)
1.1. 操作系统概述
一般操作系统包括:处理器管理、存储器管理、设备管理、文件管理和用户接口等5种功能。
-
对处理机的分配和运行进行有效的管理。在多道程序环境下,处理机的分配和管理是以进程为单位的。因此处理机管理,可以归结为进程管理。
-
存储器管理,对内存的分配、保护和扩充。
-
设备管理,设备分配(采用缓冲和虚拟技术),设备传输控制(物理的输入输出,I/O),设备独立性(用户向操作系统申请的设备与实际的操作设备无关)。
-
文件管理,对文件的存储空间管理,包括存储空间的分配和回收,目录管理、文件操作管理和文件保护等。
-
用户接口,使用操作系统功能的手段;分为程序接口和操作接口。
操作系统的类型
可分为:单用户操作系统、批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统、并行操作系统和嵌入式操作系统。【注:分类标准很混乱】
-
单用户操作系统,一台处理机上只能支持一个用户程序的运行。
-
批处理操作系统,作业处理系统。分为单道批处理系统和多道批处理系统。
-
分时操作系统,为了解决批处理系统无法进行人机交互的问题,并使多个用户通过自己的终端以交互的方式使用计算机,共享主机中的资源。系统采用分时技术,将CPU的时间划分成很短的时间片,轮流分配给各个终端作业使用。
-
网络操作系统,具有网络功能的操作系统,主要特点是网络中各种资源的共享和各台计算机间的通讯。
-
分布式操作系统,各台计算机间相互合作,共同完成一个任务。网络操作系统的高级形式,与网络操作系统的区别是,在于任务的分布性,即把大任务分成多个小任务,并分派到不同的CPU上执行。
-
嵌入式操作系统,运行在嵌入式智能芯片环境中。
操作系统的结构
从结构看,主要有整体结构、层次结构、客户/服务器结构和面向对象结构。
-
整体结构,也称为模块组合结构或无序结构,是基于结构化程序设计的设计方法,开发的操作系统。模块作为操作系统的基本单位,每个模块具有一定独立的功能,若干个相关联模块协作完成某个功能。模块之间无序调用。所有的模块连接成一个完整的操作系统。
-
层次结构,将操作系统划分为内核和若干模块(或进程),这些模块按功能的调用次序排列成若干层次,各层之间是单向依赖或者单向调用关系,即低层为高层服务,反之不能。缺点建立模块间的通信机制,模块间通讯花费很大。
-
客户服务器结构,现代操作系统大多拥有两种工作状态,分别是核心态和用户态。一般应用程序工作在用户态,内核模块和最基本的操作系统核心工作在核心态。也称为微内核结构。大多操作系统功能由在用户态的服务器进程来实现。客户进程将请求发给服务器进程,服务器进程将处理结果返回服务器进程。服务器进程不能直接访问硬件。主要优点:
-
统一的接口。
-
可伸缩性好
-
可移植性好,所有与具体机器特征的相关代码,全部隔离在微内核中。
-
实时性好。
-
安全可靠性高
-
支持分布式系统
-
面向对象结构
进程管理
进程是进行资源分配和调度的基本单位。
进程是通过物理实体被感知的,进程的物理实体又称为进程的静态描述,通常由三部分组成,分别是程序、数据集合和进程控制块(Process Control Block,PCB)。程序描述了进程所要完成的功能,数据集合描述了程序运行所需要的数据部分和工作区;PCB包括进程的描述信息、控制信息和资源信息,是进程动态特性的集中反映。程序和集合是进程存在的物质基础,是进程的实体;PCB是进程存在的标志,进程与PCB是一对一的关系,操作系统利用PCB对并发执行的进程进行控制和管理。
进程的状态
进程与程序不同,它是活动的且有状态变化的。
-
三态模型
具有三种基本的状态,分别是运行、就绪和阻塞,入下图:
程序加载后处于就绪状态,分配的CPU时间片到,进入运行状态,CPU时间片到,回到就绪状态;在运行状态中,如果需要等待某事件,进入阻塞状态,事件条件满足后,进入就绪状态。
运行状态:进程占有处理机正在执行程序的状态。
阻塞状态:也称为等待状态或睡眠状态,是进程等待某个事件发生而处于暂停执行的状态。
就绪状态:进程已经分配到除处理机以外的资源,具备执行条件,等待处理机调度的状态。
-
五态模型
由于进程的不断创建,系统资源尤其是内存资源不能满足所有进程的要求。这时必须将某些进程挂起,放到磁盘对换区,暂时不参加调度,以负载均衡。挂起原因,可能是系统故障,或调试程序等等。
活跃就绪,指进程在内存并且可被调度状态。静止就绪,对换到外存时的就绪状态,是不能直接被调度的状态。
活跃阻塞和静止阻塞同理。
信号量与PV操作
在多道程序中,由于资源共享与进程合作,使各进程间产生两种形式的制约关系,一种是间接制约,例如都需要访问打印机,执行打印操作;另外一种是直接制约,例如进程A通过缓冲区为进程B提供数据。
进程同步主要源于进程合作,是进程之间共同完成一项任务时直接发生相互作用的关系。在多道程序中,这种在执行次序上的协调时必不可少的。
进程互斥主要源于资源共享,是进程之间的相互制约关系。在多道程序中,每次只允许一个进程访问的资源成为临界资源,进程互斥要求保证每次只有一个进程使用临界资源。
在每个进程访问临界资源的程序段,称为临界区,进程进入临界区需要满足一定的条件,以保证临界资源的安全使用了系统的正常运行。临界区是进程在时间上互斥。即同一时间只允许一个进程执行。
【注:在访问临界资源时,需要说明的是临界区的大小,因为CPU是按照分时执行进程的,当进程拥有临界区的资源后(进程在执行临界区的代码),CPU被分配到其他的进程上,此时临界资源,对于其他的进程也是无法访问的。JVM的监视器模型,实际上是一个面向对象化的临界区和临界资源,拥有监视器,即拥有对象锁,也意味着进入了临界区,此时资源,只允许临界区的代码访问;即此时其他的进程应该无法进入临界区,即执行临界区的代码,控制的机制实际上就是信号量,通过信号量来控制临界资源的当前的数量,和允许那些进程进入到临界区中。同理,在监视器模型中,线程(在这里只限于同步代码,线程和线程是存在明显区别的)请求对象锁(类似于信号量),对象锁未被拥有,线程进入监视区,拥有该监视器(整体执行监视器的代码,中途不会将将CPU的时间片,分配给其他的线程;进程则是同判断,决定其他的进程是否执行临界区的代码,在同一个信号量下,保证临界区的代码只能有一个进行执行),可以执行对象的方法,注意,仅仅该对象的方法,其他的对象不包括在内,因为没有拥有其他对象的监视器,线程执行完成后,执行notify,通知其他线程,可以申请该对象的监视器。监视器monitor,即监视对象执行的监视区域的代码,即拥有监视器,才能执行监视区域的代码,和锁的概念不同,锁没有代码区。监视器是按照对象来区分的,如果在一个对象的监视区内,调用其他对象的方法,此时线程执行其他对象的方法,如果该方法,不需要拥有监视器,则同样按照线程分时去执行。即不会整体执行。】
-
信号量
信号量作为进程同步和互斥的工具。进程互斥,即临界区代码的访问。资源互斥,即不能对资源同时访问。
信号量是一个二元组(S,Q),其中S是一个整型变量,初值为非负,Q为一个初始状态为空的等待队列。在多道程序系统中,信号量是一种有效的实现进程同步与互斥的工具。信号量的值通常表示某类资源的数目,当它大于0,表示系统当前可用的资源数据量;当它小于0,表示系统中等待使用该资源的进程数量,即在Q队列上排队的PCB数量。信号量的值是可变的,由PV操作来改变。
这篇关于系统分析员考试复习笔记-3:第三章 操作系统基本原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!