计算机考研复试-操作系统

操作系统

1.操作系统的功能

进程管理,内存管理,文件管理,设备管理,作业管理

2. 进程和线程的区别
  • 进程是运行时程序的封装,一个进程实体包括PCB,程序段,数据段,它是系统进行资源调度和分配的基本单位,也就是线程不拥有资源,实现了操作系统的并发。

  • 线程是进程的子任务,是CPU调度和分派的基本单位,实现进程内部的并发。

  • 一个程序至少有一个进程,一个进程至少有一个线程,线程依赖于进程而存在。

  • 进程在执行过程中拥有独立的内存单元,而进程创建的线程共享进程的内存空间。

  • 进程切换需要经过用户态和内核态的转换,开销较大,而属于同一个进程的线程切换不需要操作系统状态切换的,开销较小。

3.进程间通信的方式

共享存储

通信的进程之间存在一个可直接访问的共享空间,通过对这个共享空间进行操作实现进程间信息交换。

消息传递

通过系统的发送消息和接收消息两个原语。

直接通信,发送进程直接将消息发送给接收进程,并挂在就收线程的消息队列上。

间接通信,信箱方式,发送进程把消息发送给中间实体,也叫信箱,信箱再发送给接收进程。

管道通信

管道,用于连接读进程和写进程的共享文件,写进程把消息写到缓冲区,读进程再进行读取,半双工通信方式,即读写进程不能同时操作缓冲区。

4.多线程模型

多对一模型

多个用户级线程映射到一个内核级线程,线程管理在用户空间完成,效率较高,一个线程在使用内核服务的时候被阻塞,整个进程都会被阻塞,同时多个线程不能并行的执行在处理机上。

一对一模型

每个用户级线程映射一个内核级线程,一个线程被阻塞后,另一个线程可以继续执行,并发能力较强,每创建一个用户线程就得创建一个内核线程与之对应,开销较大,影响性能。

多对多模型

采取了前两种模型折中的方式,把线程管理放在线程空间,提高性能,又能在一个线程阻塞之后,其他线程能继续执行,同时线程间可并发执行。

5.调度的层次

作业调度

从外存中挑选一个作业给他们分配内存和IO设备等必需的资源,并建立相应的进程,让他们具有争夺处理机的权利

内存调度

把暂时不能运行的进程从内存调出,把已经具备运行条件的进程调入内存

进程调度

从就绪队列中选取一个进程,把处理机分配给它,最基本的调度

不能进行调度的时机:处理中断和进程进入内核临界区

6.调度算法

先来先服务

不可剥夺,算法简单,但效率低,对长作业有利,但对短作业不利,有利于CPU繁忙型,但不利于IO繁忙型

短作业优先

对长作业不利,可能导致长作业长期得不到调度,算法未考虑紧迫程度,且只是根据用户所提供的时间而定,所以并不一定能真正做到短作业优先

平均等待时间和平均周转时间最少

优先级调度算法

非剥夺式优先级调度算法:当优先级高的进程进入就绪队列时,任然让正在运行的进程继续运行,直到运行的进程自己让出处理机

剥夺式优先级调度算法:优先级高的进程进入就绪队列时,立即暂停执行正在执行的进程,把处理机分给更为紧迫的进程。这个有静态优先级和动态优先级两种。

高响应比优先调度算法

响应比 = (等待时间+要求服务时间)/要求服务时间

即可以照顾到短作业,也可以照顾到长作业。等待时间相同时,要求服务时间越短,响应比越高,越先被调度;对于长作业,等待时间越长,优先级越高,等待时间足够长时,响应比也会很高,可以获得到处理机,克服了饥饿的问题。

多级反馈队列

设置多个反馈队列,第一个队列优先级最高,其他优先级逐渐降低,每个队列时间片的大小不一样,优先级最高的队列时间片也最小,当有新任务时先到第一个队列,然后慢慢分配到后面的队列。

特点:短作业优先,周转时间较短,不会出现饥饿的情况。

7.实现临界区互斥

软件实现方法:皮特森方法,单标志法,双标志法

硬件实现方法:中断屏蔽,硬件指令

信号量:既能实现同步也能实现互斥

8.管程

把对共享资源用一个共享的数据结构表示,把对共享资源的申请释放用一组过程操作这个数据结构来实现,这个数据结构和这一组过程叫做管程。

9.死锁

死锁:多个进程因竞争资源而造成相互等待的一种僵局,若无外力作用,这些进程都将无法推进的情况。

死锁产生的原因:系统的资源数有限,进程推进顺序不当,死锁产生的必要条件

死锁产生的必要条件:互斥的使用资源,不能剥夺,请求并保持,循环等待

死锁的检测与解除:

检测使用死锁定理,即当资源状态图是不可完全简化的,则出现了死锁;死锁解除有三种方法:操作系统协助剥夺,撤销进程法,回退进程法。

死锁预防

死锁预防,即破坏死锁的四个必要条件

互斥条件:破坏互斥条件是很不靠谱的,有些情况下不仅不能破坏,更要保护进程的互斥性
不剥夺条件:当一个进程请求的资源得不到满足时,它必须放弃现在持有的所有资源,会导致前一个阶段的工作失效
请求并保持:一次性申请,当所需要的所有资源满足要求时才进行申请,资源被严重浪费,可能导致饥饿
循环等待:给系统资源进行编号,必须按顺序进行申请,限制了新设备的增加,同时给用户编程带来困难

死锁避免

银行家算法:检查分配资源后系统还是不是安全状态。

10.内存管理的功能

内存空间的分配与回收,地址转换,内存空间的扩充,存储保护

11.程序的编译,链接和装入

编译:由编译程序将目标源代码编译成若干目标模块

链接:由链接程序将编译后形成的一组目标模块及所需的库函数链接在一起,形成完整的装入模块

静态链接,装入时动态链接(边装入边链接),运行时动态链接(边运行边链接)

装入:装入程序将装入模块装入内存

绝对装入:逻辑地址与实际地址相同,装入后地址不再变动。

可重定位装入:也叫静态重定位,程序中的地址都是相对于起始地址的,装入时对指令和地址进行统一修改

动态运行时装入:动态重定位,装入内存时并不立即对指令和地址进行修改,而是推迟运行时,需要重定位寄存器的支持

12.覆盖与对换

覆盖:把用户空间分成一个固定区和若干覆盖区,经常活跃的数据放在固定区,其余部分放在覆盖区,需要调用的程序在外存时,将其调入覆盖区。

对换:把处于等待状态的进程从内存换出到辅存,把准备好竞争CPU的进程换进内存,也就是中级调度

13.连续分配方式

单一连续分配方式

分为系统区和用户区,系统区供操作系统使用,用户区供用户进程使用,系统中只有一道程序,简单,只需要覆盖技术

固定分区分配

分区大小相等,缺乏灵活性

分区大小不等,存在较多内部碎片

动态分区分配

根据进程的大小动态分配分区

首次适应算法,最佳适应算法,最坏适应算法,临近适应算法

14.非连续分配算法

基本分页存储管理方式,基本分段存储管理方式,段页式存储管理方式
寻址过程需要知道,教材上有过程,这里简略。

15.局部性原理

时间局部性:程序中的一条指令一旦执行,不久之后可能再次执行,因为程序中存在大量循环操作。

空间局部性:一旦程序访问了某个存储单元,在不久后可能访问其附近的存储单元,指令通常连续存放,顺序执行。

16.页面置换算法

最佳置换算法,先进先出页面置换算法(Belady异常)

最近最久未使用置换算法,时钟置换算法

17.页面分配策略

固定分配局部置换,可变分配全局置换,可变分配局部置换

18.驻留集和工作集

驻留集:分配给一个进程的所有页框

工作集:一个进程近期访问的页面的集合

19.文件操作

创建文件:在文件系统为文件找到空间,在目录中为新文件创建条目,包括文件名,文件地址等。

写文件:为了写文件,执行一个系统调用,指明文件名称和要写入的内容,系统维护一个写指针,每当发生写操作,更新写指针。

读文件:执行一个系统调用,指明文件名称和要读入的文件块的内存位置,系统维护一个读指针,每当发生读操作,跟新读指针。

打开文件:首先使用open调用,传入文件位置和操作类型(r,w,rw),首先检查权限,若权限不足则直接拒绝,若用户有权限,则复制目录项到内存的打开文件表中(用户),系统打开文件表中若没有这个目录项则也复制进去,若有这个目录项,则把打开计数器加一。

关闭文件:将进程打开文件表中对应目录项删除,回收文件的内存空间等资源,把系统打开表的打开计数器值减一。

20.文件的逻辑结构

1.无结构文件(流式文件)

2.记录式文件:顺序文件,索引文件,索引顺序文件,直接(散列)文件

21.目录结构
1.单级目录结构:实现了按名存取,但问价不允许重名,不允许共享

2.两级目录结构:解决了文件不允许重名的问题,但是缺乏灵活性,不能对文件进行分类

3.多级目录结构:实现了文件的分类,引入了当前目录和相对路径的概念,但是不便于实现文件共享

4.无环图目录结构:实现了文件的共享

22.文件共享

1.基于索引结点的共享方式(硬链接)

共享时直接指向该文件的索引结点,当另一个指向索引结点的连接断开时,不会互相影响,但删除文件时,只是把共享数减一,不会删除文件,因为会导致其他共享文件指针悬空。

2.基于符号链实现的文件共享(软链接)

只是建立一个链接文件,存储的是共享文件的地址,当把原文件删除时,再次访问链接文件会报目标地址不存在的错误。

23.文件分配方式

1.连续分配

增加时可能需要大量移动盘块,反复增删会产生外部碎片

2.链接分配

隐式链接:离散分配,消除了外部碎片,但不支持随机访问。

显示链接:支持随机访问,但FAT文件分配表占用空间。

3.索引分配

直接索引,多层索引,混合索引

24.存储空间管理

空闲表法,空闲链表法,位示图法,成组链接法

25.磁盘调度算法

先来先服务,最短寻道时间优先,扫描法,循环扫描法

26.IO控制方式

程序直接控制 :每次只能只能读写一个数据,且CPU在不断的轮询访问

中断驱动方式:每次只能读写一个数据,但是期间CPU可以做其他事,读写完成后发出中断信号

DMA方式:每次可读取一个数据块,读取完成后发出中断

通道控制方式:每次可以读取多个数据块,可以写程序指定读哪些数据库,通道用来执行

检测自己有没有复习到位,看着以下这些关键字,是否可以说出内容,复试时很多时候老师都是说个关键字,然后你自己根据关键字拓展,既可以检验广度,又可以检验深度。

操作系统的功能
进程与线程的区别
进程间通信的方式
多线程模型
调度的层次
调度算法
实现临界区互斥
管程
死锁
内存管理的功能
程序的编译,链接和装入
覆盖与对换
连续匹配方式
非连续分配算法
局部性原理
页面置换算法
页面分配策略
驻留集和工作集
文件操作
文件的逻辑结构
目录结构
文件共享
文件分配方式
存储空间管理
磁盘调度算法
IO控制方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值