考研操作系统复试题
1、什么是进程和线程,有何区别?
进程是能够运行的活动实体,进程是系统进行资源分配和调度的一个独立单位。
线程是进程的实体,是cpu运行的基本单位,几乎不拥有资源,但是它可以和同一进程的其他线程共享进程的所有资源,同一进程的多个线程可以并发执行。
2、操作系统的特征
并发、共享、虚拟、异步
并发是指两个或多个事件在同一时刻发生
并行是指两个或多个事件在同一时间间隔内发生
3、三态、五态、七态
三态:就绪,执行,阻塞(IO请求、IO完成、进程调度、时间片完)
五态:就绪,执行,阻塞、创建、终止
七态:就绪、执行、阻塞、创建(用户登陆、提供服务、作业调度)、终止、挂起、激活
4、 中断与异常
中断(外部)是指计算机在执行期间,系统内发生任何非寻常或非预期的急需处理事件,使得cpu暂时中断,当前在执行的程序转去执行相应的事件处理程序,待处理完毕后又返回原来的中断处继续行。即:中断主要是响应外部硬件设备的。
异常(内部)是指cpu内存出现中断,cpu的指令出现了非法的情况,也叫同步中断。
5、 线程同步的几种方式
a) 临界区
当多个线程访问一个独立性共享资源时,可以使用临近区对象,拥有临界资源的线程可以访问被保护起来的代码或资源,其他线程若想访问,则被挂起,直到拥有临界区的线程放弃临界区。
b) 事件
事件机制,则允许一个线程在处理完一个任务后,主动唤醒另外一个线程执行任务
c) 互斥量
互斥对象和临界区对象非常相似,只是其允许在进程间使用,而临界区只限制与同一进程的各个线程之间使用,但是更节省资源,更有效率。
d) 信号量
用技计数器来限制可以使用某个共享资源的线程数目,如果这个计数达到了零,则所有对这个Semaphore类对象所控制的资源的访问尝试都被放入到一个等待队列中等待,直到超时或计数值不为零为止。
6、 用户态和核心态的区别
用户态:此时cpu只能执行非特权指令
和心态:此时cpu执行非特权和特权指令
运行哎用户态下的程序不能直接访问操作系统内核数据结构和程序。
1) 用户态切换到内核的三种方式:
a) 系统调用
b) 异常
c) 外围设备的中断
7、 死锁的概念
一组竞争系统资源的进程出现‘永久’阻塞,当一组进程的每个进程都在等待某个事件,而只有在这组进程的其他被阻塞的进程运行结束后才可以释放该事件。
8、 导致死锁的四个必要条件:
互斥、请求保持、不可抢占、循环等待
9、 处理死锁的方式
1、 死锁的预防
2、 避免死锁:银行家算法、安全状态
安全状态是指至少有一个资源分配序列不会导致死锁。当进程请求一组资源时,假设同意该请求,从而改变了系统的状态,然后确定其结果是否还处于安全状态。如果是,同意这个请求;如果不是,阻塞该进程直到同意该请求后系统状态仍然是安全的。
3、 死锁的检测:资源费配图
4、 死锁的解除:抢占资源、终止进程
10、 进程调度算法
周转事件 = 结束时间 – 开始时间
带权周转时间 = 周转时间/要求服务时间
A)先来先服务调度算法
B)短作业优先调度算法
c)优先级调度算法
d)高响应比调度算法 相应时间/要求服务时间
e)时间片轮转调度算法
11、生产者消费者问题
两个进程共享一个公共的固定大小的缓冲区。其中一个是生产者,用于将消息放入缓冲区;另外一个是消费者,用于从缓冲区中取出消息。问题出现在当缓冲区已经满了,而此时生产者还想向其中放入一个新的数据项的情形,或者当缓冲区空时,消费者还要从中取出数据项的问题。为了保证这种情况不会发生,我们通常使用信号量和消息传递来解决生产者-消费者问题。
12、 存储管理
连续分配:存在内部碎片
A)单一连续分配
B)固定分区分配
C)动态分区分配
一、基于顺序搜索
1)首次适应(每次重头查找适应的大小空闲分区)
2)临近适应(当前的附近位置)
3)最佳适应(从小到大)
4)最坏适应(从大到小)
二、基于索引搜索
1)快速适应
2)伙伴系统
3)哈希算法
非连续分配
请求分页存储管理
请求分段存储管理
请求段页式存储管理
** 补充: **
分段和分页的优缺点及区别:
1、 单位
a) 页是信息的物理单位,实现非连续分配,以便解决内存碎片问题
b) 段是信息的逻辑单位,分段的目的是为了能更好地满足用户的需要。
2、 大小
a) 页的长度固定,由系统决定
b) 段的长度不固定,由用户编写的程序决定
3、 地址空间不同
a) 分页的地址空间是一维的
b) 分段的地址空间是二维的
13、虚拟存储器
将程序的一部分装入内存,其余的部分装到外存,就可以启动程序运行。程序运行的过程中如果需要的资源不在内存,就由操作系统调入内存。这样,系统好像为用户提供了一个比实际内存大得多的存储器,称为虚拟存储器。
特性:多次行、对换性、虚拟性
使用的技术:
请求分页存储管理
请求分段存储管理
请求段页式存储管理
14、外存分配的几种方式
1) 连续分配
2) 链式分配
3) 索引分配
4) 多重索引分配
15、同步和互斥
互斥:(是一种制约关系)两个线程之间不可以同时运行,他们会相互排斥,必须等待一个线程运行完毕,另一个才能运行
同步:(是一种合作关系)两个线程之间也不可以同时运行,但他是必须要按照某种次序来运行相应的线程