操作系统考研复试复习笔记

第一章

1.1 操作系统的特征

  • 并发:并发和共享互为存在条件
  • **共享:**互斥共享方式(如两个进程同时调用摄像头资源)和同时共享方式(如两个进程同时在发文件,同时访问硬盘,不一定在微观上同步,但在宏观上同步)
  • 虚拟:空分复用技术(如虚拟存储器技术)和时分复用技术(如虚拟处理器技术)
  • 异步

1.2操作系统的发展和分类

手工操作阶段

输入输出速度慢(人工输入,纸带机)
计算机处理速度快
主要缺点:用户独占全机,人机速度矛盾,资源利用率低

批处理阶段–单道批处理系统

引入脱机输入输出技术(用磁带完成),监督程序负责控制作业输入输出

优点:缓解一定程度的人机速度矛盾

缺点:内存中仅有一道程序运行,CPU的大部分时间空闲等待I/O

批处理阶段–多道批处理系统

操作系统正式诞生,并引入类中断技术

缺点:没有人机交互功能,在作业运行过程中无法交互,只能等待

分时操作系统

计算机以时间片为单位轮流为各个用户/作业服务,各个用户可以通过终端与计算机进行交互。

缺点:不能优先处理紧急任务。操作系统对各个用户、作业是完全公平的。

实时操作系统

能优先相应紧急任务

主要特点是及时性和可靠性

硬实时系统 和 软实时系统

网络操作系统,分布式操作系统,个人计算机操作系统

1.3操作系统的运行机制和体系结构

什么是指令?
一条高级语言代码翻译过来可能对对应多条指令。分为特权指令和非特权指令。

CPU如何判断当前是否可以执行特权指令?
两种处理器状态

  • 用户态(目态)
  • 核心态(管态)特权指令只能在核心态下执行

两种程序:

  • 内核程序–核心态–特权指令和非特权指令(最接近硬件系统,操作系统内核部分:时钟管理,中断管理,原语(设备驱动,CPU切换等),对系统资源进行管理的功能)
  • 应用程序

内核是计算机配置的底层软件

操作系统的体系结构:大内核和微内核

1.4 中断和异常

中断机制的诞生:
引入操作系统,多道程序并发执行

中断的概念和作用

本质:发生中断就意味着需要操作系统介入,开展管理工作。

由于操作系统的管理工作(比如进程切换,分配I/O设备等)需要使用特权指令,因此CPU要从用户态转换成核心态。

中断可以使得CPU从用户态切换到核心态,中断是唯一途径。使得操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。

核心态转换成用户到只需要一条特权指令

**内中断:**也成异常,例外,陷入。信号的来源是CPU的内部,与当前执行的指令有关。自愿中断:指令中断,系统调用等。强迫中断:硬件或软件中断。

外中断:CPU外部。和当前执行的指令无关。人工干预

第二章:处理机管理(CPU管理)

2.1 进程

2.1.1 进程的定义

程序:就是一个指令序列。
早期的计算机,只支持单道程序。CPU,内存,I/O设备都为这一道程序服务。内存中程序段和数据段。

多道程序技术:
内存中同时放入多道程序,各个程序的代码,运算数据存放的位置不同。操作系统要怎么才能找到各程序的存放位置呢?

为完成并发执行,引入类进程和进程实体的概念。

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

PCB,程序段,数据段三部分构成类进程实体(进程映像)。

PCB是进程存在的唯一标志,进程的管理者(操作系统)所需的数据都在PCB中。

进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。进程是动态的,进程实体是静态的。

2.1.2 进程的组织

链接方式:按照进程状态将PCB分为多个队列。操作系统持有指向不同队列的指针。执行指针:指向当前处于运行状态的进程,就绪队列指针,阻塞队列指针。

索引方式:根据进程状态建立几张索引表,操作系统持有指向不同索引表的指针。

2.1.3 进程的特征
  • 动态性:一次执行过程,动态的产生、变化、消亡。进程最基本的特征。
  • 并发性:
  • 独立性:进程是资源分配,接受调度的基本单位。
  • 异步型:各进程以不可预知的速度向前推进,可能导致运行结果的不确定性。
  • 结构性:PCB,数据段,程序段
2.1.4 进程的状态和转化

三种基本状态:

  • 运行态:占有CPU,并在cpu上运行。
  • 就绪态:已经具备运行条件,cpu没有空闲,暂时不能运行
  • 阻塞态:因为等待某一事件而暂时不能运行(分配打印机,磁盘读入等)

另外的两种状态:

  • 创建态:分配资源,初始化PCB
  • 终止态:撤销进程,回收资源,撤销PCB等

进程状态的转化

创建态-》就绪态(只欠处理机)(时间片到,或者处理机被更高优先级的进程抢占)-》《-运行态-》(主动行为:若进程用系统调用某个资源,或者请求某个事件)阻塞态(被动行为,等待资源分配)-》就绪态

-》终止态(处理完成,或者遇到异常,强行终止)

2.1.6 进程控制

对系统中所有进程进行有效的管理,具有创建新进程,撤销已有进程,实现进程状态转换等功能。

就是要实现进程状态转化

修改PCB的标志位,放到相应不同的队列中。

用原语实现进程控制,原语的特点是执行期间不允许中断,只能一气呵成。原语采用关中断指令和开中断指令。是特权指令,只能在CPU核心态下运行。

原语做的三类事情:

  1. 更新PCB中的信息
  2. 将PCB插入合适的队列
  3. 分配/回收资源

引起创建进程用(创建原语)的事件:用户登录,作业调度,提供服务,应用请求。

2.1.7 进程通信
  • 共享存储:分为基于数据结构的共享(低级通信)和基于存储区的共享(高级通信)
  • 管道通信:管道是指用于连接读写进程的一个共享文件,实际上就是在内存中开辟一个大小固定的缓冲区。只能进行半双工通信,如果要双向通信,则需要设置两个管道。各进程互斥地访问管道。读进程最多只有一个。没写满,不能读,没读空,不能写。
  • 消息传递。进程通过操作系统提供的“发送消息、接受消息”两个原语进行数据交换。进程间的数据交换以格式化的消息为单位(消息头+消息体)。分为直接通信方式和间接通信方式(消息要先发送到中间实体(信箱)中,也称为信箱通信方式)。

2.2 线程

####2.2.1 线程的定义和引入

进程是程序的一次执行。

有的进程可能需要同时做很多事,传统的进程只能串行执行一系列程序,为此引入类线程,来增加并发度。

引入线程后,线程成为了程序执行流的最小单位。是一个基本的CPU执行单元,处理机调度的基本单位。而进程只作为除CPU之外资源分配的基本单位。

2.2.2 带来的变化
  1. 资源分配、调度:进程不再同时是资源分配和调用的基本单位。线程是调度的基本单位,进程是资源分配的基本单位。
  2. 并发性:引入线程后,各线程间也能并发,提高了并发性。
  3. 系统开销:传统的进程间切换,需要切换进程的运行环境,开销很大。如果是同一进程内的线程切换,不需要切换运行环境,系统开销小。并发所带来的开销小。

####2.2.3 线程的属性

  • 线程控制块(TCB)
  • 多CPU计算机,各个线程占有不同的cpu
  • 同一进程的线程共享进程的系统资源
  • 由于共享内存地址空间,同进程中的线程间通信甚至无需系统干预
2.2.4 实现方式

用户级线程–切换线程可以在用户态下即可完成,无需操作系统干预。对用户不透明,对操作系统透明。

内核级线程–必须在核心态下完成。

操作系统只看得见内核级线程,因此内核级线程才是处理分配的单位。

多线程模型:

  • 多对一模型:多个用户级线程映射到一个内核级线程。无需切换到核心态,处理效率高,系统开销小。缺点:若某一个用户级线程阻塞,整个进程都会被阻塞。并发度不高。
  • 一对一模型:一个用户级线程映射到一个内核级线程。并发能力强,线程管理成本高,系统开销大。
  • 多对多模型: 多个用户级线程映射到多个内核级线程。集中了以上两种的优点。

2.3 处理机调度

调度的概念:当有一堆任务要处理,但由于资源有限,需要确定某种规则来决定处理这些任务的顺序,这就是调度研究的问题。

处理机调度:从就绪队列中按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程的并发进行。

调度的三个层次:

  • 高级调度:按一定的原则从外存上处于后备队列的作业中挑选一个或者多个给他们分配必要的资源,并建立相应的进程,以使它们或者竞争处理机资源的权利。
  • 中级调度:引入虚拟存储技术后,可将暂时不能运行的进程调至外存等待。这么做的目的是为了提高内存利用率和系统吞吐量。暂时调到外存等待的状态,称为挂起状态。而PCB并不会一起调到外存,而是会常驻内存。挂起态分为就绪挂起和阻塞挂起。
  • 低级调度(进程调度):按照某种方法和策略从就绪队列中选取一个进程,并将处理机分配给他。进程调度是操作系统中最基本的一种调度。
2.3.2 进程调度的时机
  • 当前运行的进程主动放弃处理机(正常终止、发生异常而终止,进程主动请求阻塞)
  • 当前进程被动放弃处理机(有更紧急的,有更高优先级的,分给进程的时间片用完)

不能进行进程调度的时机:

  • 在处理中断的过程中
  • 进程在操作系统内核程序临界区中
  • 在原子操作过程中(原语)

临界资源:一个时间段内只允许一个进程使用的资源,各进程需要互斥地访问临街资源。
临界区:访问临界资源的那段代码。

2.3.3 进程调度的方式

非剥夺调度方式(非抢占式):只允许进程主动放弃处理机。实现简单,系统开销小但是无法及时处理紧急任务,适用于早期的批处理系统。

剥夺调度方式(抢占式):优先处理更紧急的进程,实现让各进程按照时间片轮转的功能

广义的进程调度包括类选择一个进程运行和进程切换两个步骤。

进程切换过程:

  1. 对原来的运行进程各种数据的保存
  2. 对新的进程的数据的恢复

进程调度,切换需要代价,并不是调度越频繁,并发度就越高

2.3.4 调度算法的评价指标
  • CPU利用率: cpu忙碌的时间占总时间的比例
  • 系统吞吐量:单位时间内完成作业的数量 总共完成作业数量/总时间
  • 周转时间ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值