操作系统复习要点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
接受进程
在以后某个时刻,接收进程执行到receive接收原语时,也产生自愿性中断进入操作系统。操作系统将载有消息的缓冲区从消息链中取出,并把消息内容copy到接收进程空间,之后收回缓冲区。完成了消息的接收,接收进程返回到用户态继续进行
7、有哪些常用调度算法?引起进程调度的事件有那些?多级反馈队列调度算法的分析?
boolean old;
old = *lock; *lock = TRUE;
return old;
}
while( TS(&lock) );
critical section
lock=false;
remainder section
5、P/V操作的含义?信号量的含义?如何定义信号量的初值?如何利用P/V操作实现多个进程之间的同步和互斥?如利用其实现单缓冲区的读写问题?如何实现生产者消费者等问题?
操作系统复习要点
1、概述部分
操作系统概念、特征、设计目标
2、进程管理部分
进程概念、组成、进程状态迁移图及迁移原因,进程间的关系、临机区概念,实现互斥的方法、P/V操作,引入线程的目的、线程与进程间的关系、死锁特征、资源分配图判定死锁的方法,常用调度算法。
3、内存管理部分
作业装入内存的方式,分区内存管理机制中的分区分配方法、特点、快表、分页管理机制原理、实现请求调页的内存管理机制的关键技术
(4)至少一个执行栈区,包括运行现场信息。
PCB:
进程控制块:是进程存在的唯一标志,它是记录进程生存期内状态变化的重要数据结构。
包括如下数据:
Information associated with each process.
Process state
Program counter
CPU registers
常用调度算法
First-Come, First-Served (FCFS) Scheduling
Shortest-Job-First (SJF) Scheduling
Shortest-Remaining-Time-First (SRT
Priority Scheduling
Round Robin (RR)

P(mutex);
readcount --;
if (readcount==0)
V(w);
V(mutex);
};
写者:
while (true) {
P(w);

V(w);
};
2写者优先
说明
Readcount用来记录当前有多少个读者在访问数据
W是读者和写着公用的互斥变量,用来互斥读写或者写写同时进行
w初值为1,readcount初值为n
v(mutex);
v(empty);
6、高级通信方式中,理解send()和receive()的工作过程。
发送进程需要发送消息时,执行send原语,产生自愿性中断,进入操作系统,操作系统为发送进程分配一个空缓冲区,并将所发送的消息从发送进程copy到缓冲区中,然后将该载有消息的缓冲区连接到接收进程的消息链链尾。发送进程返回到用户态继续执行
2、操作系统内核技术的发展?什么是微内核?并发和并行的区别?
发展
Batch Systems(作业批处理)
Time-Sharing Systems(分时系统)
Personal-Computer Systems(PC系统)
Parallel Systems(并行系统)
Distributed Systems(分布系统)
Multilevel Queue
引起进程调度的事件
Switches from running to waiting state.
Switches from running to ready state.
Switches from waiting to ready.
Terminates.
多级反馈队列调度算法,是一种考虑较全面灵活的调度算法,它不必事先知道各作业所需执行时间,且它可以满足各种类型进程的需要,因此它是目前公认较好的一种进程调度算法。
3.无内核:
不区分核心和用户程序的分别,这样省去了状态切换的时间,这种模式适合WEB服务器.
4.微内核
微内核将许多OS服务放入分离的进程,如文件系统,设备驱动程序,而进程通过消息传递调用OS服务.微内核结构必然是多线程的,第一代微内核,在核心提供了较多的服务,因此被称为'胖微内核',它的典型代表是MACH,它既是GNU HURD也是APPLE SERVER OS的核心,可以说,蒸蒸日上.第二代为内核只提供最基本的OS服务,典型的OS是QNX,QNX在理论界很有名,被认为是一种先进的OS
对计算机系统而言,操作系统是对所有系统资源进行管理的程序的集合;对用户而言,操作系统提供了对系统资源进行有效利用的简单抽象的方法
设计目标
User goals
operating system should be convenient to use, easy to learn, reliable, safe, and fast.
线程间彼此切换所需的时间也远远小于进程间切换所需要的时间时间。
创建一个新线程花费时间少(结束亦如此)、两个线程的切换花费时间少
同一进程内的线程共享内存和文件,因此它们之间相互通信无须调用内核
适合多处理机系统
2、进程状态迁移图,引起状态迁移的原因和事件?
三五七状态迁移图无法显示请看课本ppt
引起状态迁移的原因和事件
4、文件管理部分
文件系统设计目标、管理磁盘空闲空间的方法、目录结构、FCB等
5、外设管理部分
I/0软件组成,设备驱动程序概念、四种I/O方式比较及其工作流程,设备管理目标。
复习题目
概述部分
1、什么是操作系统?操作系统设计目标是什么?由哪些部分组成?各个部分主要解决什么问题?
操作系统(operating system)是用户和计算机之间的界面.一方面操作系统管理着所有计算机系统资源,另一方面操作系统为用户提供了一个抽象概念上的计算机.在操作系统的帮助下,用户使用计算机时,避免了对计算机系统硬件的直接操作.
flag[i] = true; turn = j;
while( flag[j] && turn ==j);
critical section
flag[i]=false;
remainder section
硬件方法:
Test-and-Set指令
该指令读出标志后设置为为TRUE
boolean TS(boolean *lock) {
mutex用于访问缓冲区时的互斥,初值是1
每个进程中各个P操作的次序是重要的:先检查资源数目,再检查是否互斥否则可能死锁
实现
Producer
p(empty);
p(mutex);
one unit->buffer;
v(mutex);
v(full);
Consumer
p(full);
p(mutex);
one unit <- buffer;
实现生产者消费者等问题
问题描述:若干进程通过有限的共享缓冲区交换数据。其中,"生产者"进程不断写入,而"消费者"进程不断读出;共享缓冲区共有N个;任何时刻只能有一个进程可对共享缓冲区进行操作。
解决:
full是“满”数目,初值为0,empty是“空”数目,初值为N。实际上,full和empty是同一个含义:full + empty == N
CPU scheduling information
Memory-management information
Accounting information
I/O status information
4、进程之间的关系?什么是临界区?如何实现临界区的互斥访问?
进程之间的关系:同步互斥。。竞争协作?。。
信号量取值为非负值表示当前空闲资源数,若为负值其绝对值表示当前等待临界区的进程数
实现互斥
为临界资源设置一个互斥信号量mutex,初值为1;
在每个进程中,将临界区代码置于P(mutex)和V(mutex)原语之间
必须成对使用P和V原语:
遗漏P原语则不能保证互斥访问,遗漏V原语则不能在使用临界资源之后将其释放(给其他等待的进程)
Main Memory Management
Secondary-Storage Management
I/O System Management
File Management
Protection System
Networking
Command-Interpreter System
各部分主要解决问题见课本ppt
在进程中涉及到临界资源的程序段叫临界区
如何实现临界区的互斥访问:
软件方法:
先修改、后检查、后修改者等待
turn=j;描述可进入的进程(同时修改标志时)
在进入区先修改后检查,并检查并发修改的先后
检查对方flag,如果不在临界区则自己进入--空闲则入
否则再检查turn:保存的是较晚的一次赋值,则较晚的进程等待,较早的进程进入--先到先入,后到等待
进程两个基本特性:资源分配的独立单位、调度的基本单位
引入思想:将进程资源分配和调度分开,引入线程。
启动一个新进程必须分配独立地址空间,建立众多的数据表来维护它的代码段、堆栈段,这是一种很“昂贵”的多任务工作方式。
运行于一个进程中的多个线程,彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间。
P(mutex)
CS
V(mutex)
RS
实现同步
前趋关系
并发执行的进程P1和P2中,分别有代码C1和C2,要求C1在C2开始前完成;
为每个前趋关系设置一个互斥信号量S12,其初值为0
P1 P2
C1 P(s12)
V(s12) C2
实现单缓冲区的读写问题
说明:
Mutes、w初值为1,readcount初值为0
Real -Time Systems(实时系统)
一般来说OS的核心有以下几种:
1.单块核心(MONOLITHIC KERNEL)
将所有OS功能放入核心.UNIX就是这种结构.
2.环状核心
分为核心,任务,用户几级,如MINIX.LINUX也有这种特征,大家也许注意到,LINUX增加某些种类的服务时不像UNIX,必须重新启动.这就是这种结构比UNIX先进的地方.
Readcount用来记录当前有多少个读者ห้องสมุดไป่ตู้访问数据
Mutex用来保证读者之间互斥地修改readcount。
W是读者和写着公用的互斥变量,用来互斥读写同时进行
1读者优先
读者:
while (true) {
P(mutex);
readcount ++;
if (readcount==1)
P (w);
V(mutex);
P/V操作
是定义在信号量上的两个操作,是一种卓有成效的进程同步机制,执行P操作意味着申请分配一个单位的资源,执行V操作意味着申释放一个单位的资源。
信号量表示资源的实体,是一个与队列有关的整型变量。
初值
公用信号量用来实现进程间的互斥,初值为1,允许它所联系的一组进程对它执行P/V操作
私用信号量用来实现进程间的同步,初值为0或者某个正整数,仅允许拥有它的进程对其执行P/V操作。
读者:
while (true) {
P(w);
P (readcount);
V(w);

V(readcount);
};
写者:
while (true) {
P(w);
for i:=1 to n do P(readcount);

for i:=1 to n do V(readcount);
V(w);
};
[/code]
正在运行的进程运行完毕;运行中的进程要求I/O;执行某种原语操作;一个比正在运行进程优先数更高的进程申请运行(可剥夺调度方式);分配给运行进程的时间片已经用完;主动放弃
3、进程组成?PCB的含义?
进程由以下几部分组成
(1)一个可执行程序,包括初始代码和数据
(2)一个独立的用户空间
(3)系统资源包括I/O设备、文件等
并发与并行是两个既相似而又不相同的概念:并发性,又称共行性,是指能处理多个同时性活动的能力;并行是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行,也亦是说并发事件之间不一定要同一时刻发生
进程管理部分:
1、为什么要引入进程?为什么要引入线程?从调度性、并发性、拥有的资源以及系统开销等方面,区别和比较进程和线程?
System goals
operating system should be easy to design, implement, and maintain, as well as flexible, reliable, error-free, and efficient.
组成
Process Management
相关文档
最新文档