考研复试专业课面试——操作系统

记:操作系统的有关内容是我参考其他的博客和网上查资料进行总结的,可能不完全正确,希望大家多多指正。

1、什么是进程和线程,他们的区别是什么?

    进程是一个能独立运行的活动实体,是系统进行资源分配和调度的独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,线程是比进程更小的独立运行的基本单位。线程除了一些本身必须的资源外基本不占用系统资源,它可与该进程中的其他线程共享该进程所拥有的的所有资源,同一个进程中的多个线程能够并发执行。

    进程和应用程序的区别在于:应用程序作为一个静态文件存储在计算机存储空间中,而进程则是在动态的条件下,由操作系统维护的系统资源管理实体。

2、操作系统的特征?

    操作系统有四大特征:并发,共享,异步,虚拟。

    并行性:指两个或多个事件在同一时刻发生;

    并发性:指两个或多个事件在同一时间间隔内发生。

3、三态、五态和七态分别是什么?

    三态:就绪,执行,阻塞

    五态:就绪,执行,阻塞,创建,终止

    七态:就绪,执行,阻塞,创建。终止,激活,挂起

4、中断和异常?

    中断:指计算机在执行程序期间,系统内发异常的或者非预期紧急处理事件,使得CPU暂时中断当前正在执行的程序转去处理异常或紧急事件,处理完毕后再回到程序中断处继续执行原来的程序的过程。

    异常:指进程在运行过程中发生了某种异常事件,使得程序无法再继续执行(例如,除0错误,越界等)

5、线程同步的四种方式?

    (1)临界区:当多个线程共享一个独占性资源时可以使用临界区对象。拥有临界区的线程可以访问被保护起来的资源,其他线程再想访问则被挂起,直到拥有临界区的线程释放临界区为止。

    (2)事件:事件机制允许一个线程再处理完一个任务后主动唤醒另一个线程执行任务。例如,在某些网络应用程序中,一个线程a负责真挺通信端口,另一个线程b负责更新用户数据,当a结束时通知线程b在何时去更新用户数据。

    (3)互斥量:互斥对象和临界区对象非常相似,互斥对象允许在进程之间使用,而临界区对象只允许在同一个进程的各个线程之间使用。

    (4)信号量:当需要一个计数器来限制可以使用某共享资源的线程数量时可以使用信号量对象。该计数器存储了当前还可以使用某资源的线程的个数,当该计数器的值为0时,如果再有线程访问该资源则被放入等待队列,直到该计数器不为0或者超时为止。

6、用户态和核心态的区别?

    当一个进程执行系统调用而陷入内核代码中执行时,称该进程处于内核态,当一个进程执行用户自己的代码时,称其处于用户态。运行在用户态下的程序不能直接访问操作系统内核数据结构和程序。用户态切换到核心态有三种方式:

    (1)系统调用:这种方式是用户态进程主动要求切换到内核态,用户态进程请求使用操作系统提供的服务程序来完成工作。系统调用的机制是使用了操作系统为用户特别开放的一个中断。

    (2)异常:CPU在执行运行在用户态下的程序时发生了某些不可知的异常,触发了由当前执行的程序转去处理异常的内核相关程序中,也就转到了内核态。

    (3)外围设备中断:当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换

7、死锁的概念以及导致死锁的四个必要条件分别是什么?

    死锁定义为一组相互竞争资源或者通信的进程之间的“永久性”阻塞。当一组进程中的每一个进程都在等待某个事件,而该事件只有在当改组进程中其他被阻塞的进程执行完毕后才能够释放,称这组进程发生了死锁。

    导致死锁的四个必要条件如下:

    (1)互斥:指一次只有一个进程可以拥有某资源,进程不可访问已经分配给其他进程的资源。

    (2)占有且等待:进程在等待其他进程的时候占有已经分配给他的资源。

    (3)不可抢占:不可强行抢占已经分配给其他进程的资源。

    (4)循环等待:存在一个封闭的进程链,每个进程都至少占有一个下一个进程所需要的资源。

8、处理死锁的方式?

    处理死锁的方式有三种:死锁预防、死锁避免和死锁检测。

    在死锁避免中用到的银行家算法,首先需要定义状态和安全状态的概念。状态是指当前给进程分配的资源情况,安全状态是指至少存在一个资源分配序列不会导致死锁。当进程请求分配资源时,假设同意了该请求系统的状态发生了改变,判断改变后的状态是安全状态,若是则同意该请求,若不是则阻塞该进程,直到同意该请求后系统为安全状态为止。

9、进程调度算法都有哪些?

    进程调度算法有:先来先服务算法,短进程优先调度算法,高优先级优先调度算法,非抢占式优先权算法,抢占式优先权调度算法,高响应比优先调度算法,时间片轮转调度算法,多级反馈队列调度算法,其中多级反馈队列调度算法的实现过程如下:

    (1)设置多个就绪队列,每个队列设置不同的优先级,优先级越高的其时间片就越小。

    (2)当一个进程进入内存后,按照先来先服务的规则首先放到第一队列的队尾,如果能在第一队列中完成则可以撤出,如果不能完成则放到第二队列的队尾,以此类推。

    (3)只有第一队列为空时才会去调度第二队列中的进程,以此类推。

    (4)当处理机正在处理第i队列中的一个进程时,有一个新进程放到了优先级更高的队列中,则此时处理机转去处理优先级高的队列中的进程,并且把正在处理的进程放到第i队列的队尾。

10、生产者和消费者问题?

    两个进程共享一个公共的固定大小的缓冲区,其中一个是生产者,往缓冲区中放入消息,另一个是消费者,从缓冲区中取消息。当缓冲区满时生产者还想往里面放置消息,或者当缓冲区为空时消费者想要从缓冲区中取出消息,这样就会出现问题,为了保证这种问题不发生,常用信号量和消息传递来解决生产者和消费者问题。

11、使用虚拟内存的好处?

    (1)可以尽可能多的保留进程,因为对于任何特定的进程都只存储他的某些块,因此就有足够的空间放入更多的进程。

    (2)进程可以比内存空间要大。

12、内存连续分配方式采用的几种算法以及各自优缺点?

    (1)首次适应算法:即从空闲分区链的首部开始查询,直到找到一个大小满足要求的空闲分区为止,然后按照作业的大小从空闲分区划分出一块内存分配给作业,剩余分区仍然留在空闲分区连中。

    (2)循环首次适应算法:与首次适应算法类似,只是在寻找空闲分区时不是每次都从链的首部开始,而是从上次查找到的空闲分区处开始查询,直到找到一个满足要求的分区位置。该算法能够使分区分布更加均匀,缺点是会缺乏大的空闲分区。

    (3)最佳适应算法:该算法总能把即满足要求又是最小的分区分配给作业,在进行操作之前该算法要求将所有分区按大小进行排序,形成一个递增的链,每次查找到的分区都必将是最合适的分区。这种算法孤立来看是最优的,但在每次分配完分区后剩余的空闲分区是最小的,将会留下许多难以利用的小空闲分区,并且每次进行分区之后都要从新排序,开销也比较大。

    (4)最差适应算法:与最佳适应算法相反,该算法要求按照降序将空闲分区排列成一个链,从第一个分区开始进行分配,显然如果第一个分区都不能满足要求那其他分区也不能满足要求。该算法在大空闲分区中放入一个程式后其剩余的空闲分区往往也非常大,还可以再放入较大的程式。

13、分段分页方式的各自优缺点的比较?

    (1)分页是信息的物理单位,为实现离散式分配方式,以减少内存外零头,提高内存利用率。分段是信息的逻辑单位,其含有一组意义相对完整的信息。

    (2)页的大小是固定的,由系统确定;段的大小不确定,决定于用户所编写的程序。

    (3)分页的地址空间是一维的,程序员只需要利用一个标记符;分段的地址空间是二维的,在确定一个地址时不仅要给出段名还要给出段内地址。

14、同步和互斥?

    同步:指散布在不同任务之间的若干程序片段,他们的运行必须按照规定的某种先后次序,这种先后次序依赖于任务本身。

    互斥:指散布在不同任务之间的若干程序片段,当某个任务运行其中一个程序片段时,其他任务就不能运行他们中的任意一个程序片段,只能等到该任务运行完这个程序片段才可以。

15、外存分配的几种方式以及优缺点?

原创文章 54 获赞 99 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_38938670/article/details/105475818