我是靠谱客的博主 无限灯泡,最近开发中收集的这篇文章主要介绍操作系统(秋招整理),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

操作系统

1.   什么是操作系统中的“单道”、“多道”、“批处理”?

1)    单道批处理操作系统具有如下的特性:

a)    自动性:磁带上的一批作业能够自动的逐个的进行不需要人工干预

b)    顺序性:各道作业作业完成的顺序与它们进入内存的顺序完全相同

c)    单道性:内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行,当程序运行完成或发生异样才换后继程序进入内存。

2)    多道批处理:用户所提交的作业都先存放在外存上并排成一个队列,称为后备队列。然后由作业调度程序按照一定的算法从后备队列中选择若干个作业调入内存,使他们共享CPU和系统中的各种资源。

 

2.   “实时系统”、“分时系统”的比较。

1)    分时:把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用

2)    实时:在规定时间内,完成对该事件的处理,并控制所有实时任务协调一致的运行。

 

3.   “作业”、“进程”、“程序”之间的关系。

1)    作业:作业是用户需要计算机完成的某项任务,是要求计算机所做工作的集合。一个作业的完成要经过作业提交、作业收容、作业执行和作业完成4个阶段。一个作业可由多个进程组成,且必须至少由一个进程组成,反过来则不成立。

2)    进程:进程由程序和数据两部分组成,进程是竞争计算机系统有限资源的基本单位,也是进程处理机调度的基本单位。一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。进程是对已提交完毕的程序所执行过程的描述,是资源分配的基本单位。

3)    程序:程序是静态的概念;一个程序可以作为多个进程的运行程序;一个进程也以运行多个程序。

4)    一个作业通常包括程序、数据和操作说明书3部分。每一个进程由PCB、程序和数据集合组成。这说明程序是进程的一部分,是进程的实体。因此,一个作业可划分为若干个进程来完成,而每一个进程有其实体——程序和数据集合。

 

4.   进程的基本状态以及这些状态之间的转换。

 

1)    创建状态:进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态

2)    就绪状态:进程已经准备好,已分配到所需资源,只要分配到CPU就能够立即运行

3)    执行状态:进程处于就绪状态被调度后,进程进入执行状态

4)    阻塞状态:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用。

5)    终止状态:进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行

5.   什么是PCB进程控制块?

PCB主要包括如下几部分信息:

1)   进程标识符:

(1)  内部标识符:操作系统为每一个进程赋予的唯一数字标识符,系统使用

(2)  外部标识符:由创建者提供,通常有字母与数字组成,往往是由用户(进程)在访问该进程时使用。

2)    处理机状态:由处理机的各种寄存器中的内容组成。处理机被中断时,所有这些信息都必须保存在PCB中,以便在该进程重新执行时,能从断点继续执行。

3)    进程调度信息:进程状态、进程优先级、进程调度所需的其它信息:与进程调度算法有关事件,指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因

4)    进程控制信息: 程序和数据的地址,进程同步和通信机制,资源清单:除CPU以外的、进程所需的全部资源及已经分配到该进程的资源。链接指针:本进程(PCB)所在队列中的下一个进程的 PCB的首地址。

 

6.   “进程”以及“线程”的关系与区别。

1)    进程:进程是一个可拥有独立资源的单位;进程同时又是一个可以独立调度和分派的基本单位。

2)    进程与线程的关系:

a)    调度:在拥有线程的OS中,线程是调度和分派的基本单位,而进程作为资源拥有的基本单位。

b)    并发性:不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可以并发执行。

c)    拥有资源:进程可以拥有资源,是系统中拥有资源的基本单位。一般而言,线程自己不拥有系统资源,但他可以访问期所隶属的进程的资源。

d)    系统开销:在创建或撤销进程时,操作系统都需要为之创建和回收进程控制块,分配或收回资源,操作系统所付出的开销明显大于线程的创建和撤销时的开销。线程撤销时只需要撤销PCB表即可。

 

7.   信号量机制、P操作、V操作、wait()操作、signal()操作、wakeup()操作。

同步应该遵循:

1)    空闲让进:无进程处于临界区,应该允许请求进程立即进入自己的临界区

2)    忙则等待:已经有进程进入临界区,其他进程应当等待

3)    有限等待:对要求访问的临界资源进程,应该保证在有限的时间内进入临界区

4)    让权等待:当进程不能进入自己的临界区时,应该立即释放处理机以免进入忙等

进程同步的基本概念:

1)   两种形式的制约关系

在多道程序下,当程序并发执行时,由于资源共享和进程合作,使处于一个系统中的诸进程之间存在着以下的两种形式的制约关系

a)    间接相互制约关系(互斥):同处于一个系统的进程,通常都是共享某种资源,系统已经将唯一的一个资源分配给一个进程,此时另一个进程只能阻塞

b)    直接相互制约关系(同步):这种制约主要源于进程间的合作。例如,有一输入进程A通过单缓冲向进程B提供数据,当缓冲空时,计算进程因不能获得所需数据而阻塞,而当进程A把数据输入缓冲区后,便将B唤醒;反之,当缓冲区满时,进程A因为不能再向缓冲区投放数据而阻塞,当进程B将缓冲区的数据取走后便可唤醒A。

信号量机制是一种卓有成效的进程同步工具,分为:整型信号量、记录型信号量、AND型信号量、信号量集

1)    整型信号量:把整型信号量定义为一个用于表示资源数目的整型变量S,它只能通过两个标准的原子操作wait(s)和signal(s)来访问。这两操作被称为P、V操作

Wait(s): while s<=0 do no-op;//当s<=0时做空操作

            S:=s-1

Signal(s): s:=s+1

当一个进程在修改某信号量时没有其他进程可同时对信号量进行修改。

2)    记录型信号量:在整型信号量wait中,只要信号量S《=0,就会不断的测试,因此该机制并没有遵循让权等待,但采用了让权等待策略后,又会出现多个进程等待访问同一临界资源,为此在信号量机制中除了需要表示资源数目的value,增加一个进程链表指针L,用于链接上述的所有等待进程。记录型信号量由于采用了记录型的数据结构而得名,数据项描述如下:

type semaphore = record

     value:integer;

     L:list of process;

     End

相应的,wait和signal可以表示为:

Procedure wait(s):

     Var s:semaphore;

     Begin

         s.value:=s.value-1

         if s.value<0 then block(s.L)//排入等待队列,进行自我阻塞放弃处理机,并加入信号量链表S.L中。此时s.value 表示该信号量链表中已经阻塞的进程数目。

     end

prodedure signal(s)

     var s:semaphore;

     begin

         s.value:=s.value+1

         if s.value<=0 then wakeup(s.L)//将s.L链表中的第一个等待进程唤醒

      每次wait操作表示进程请求一个单位的资源,signal表示执行进程释放一个单位的资源。如果s.valuede 值是1表示这是互斥的资源。

3)    利用信号量实现互斥进程

Var mutex:semaphone:=1

      Begin

           Parbegin//并发执行

                 Process 1:begin

                            Repeat

                                  Wait(mutex);

                                  Critical section //临界区

                                  Signal(mutex);

                                  Remainder section //剩余操作

                            Until false

                            End

            Process 2:begin

                      Repeat

                            Wait(mutex);

                            Critical section //临界区

                            Signal(mutex);

                            Remainder section //剩余操作

                      Until false

                      End

         Parend

End

      在利用信号量实现互斥的时候,wait(mutex)与signal(mutex)必须成对出现。

8.   生产者与消费者问题。

生产者生产商品供消费者使用,为了使生产者和消费者能够并发,在两者之间设置了一个具有n个缓冲区的缓冲池,生产者将他所生产的商品放入一个缓冲区,消费者可以从一个缓冲区取走商品。要求不允许消费者到一个空缓冲区取商品,也不允许生产者向满的缓冲区投放商品。

9.   银行家问题

10.  存储管理方式

1)   单一连续分配存储管理方式

2)   固定分区存储管理方式

3)   动态分区存储管理方式

4)   页式存储管理方式

5)   段式存储管理方式

6)   段页式存储管理方式

7)   虚拟存储管理方式

11.  Spooling技术

12.  FAT与NTFS

转载于:https://www.cnblogs.com/roygym/p/10265725.html

最后

以上就是无限灯泡为你收集整理的操作系统(秋招整理)的全部内容,希望文章能够帮你解决操作系统(秋招整理)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部