操作系统

一、进程和线程
  进程是可运行程序的实例,是系统进行资源调度和分配的基本单位。
  线程是进程的实体,一个进程可以有多个线程,多个线程可以并发执行。
二、线程同步的方式
  互斥量:采用互斥对象的机制,只有拥有互斥对象的线程才能访问共享变量,因为互斥对象只有一个,因此可以保证共享对象在同一时间只能被一个线程访问。
  信号量:允许多个线程同时访问同一资源,但是需要控制同一时刻访问同一资源的最大线程数。除了初始化之外,它只能通过两个标准原子性操作:await()和singnal()
  事件(信号):通过通知操作的方式保持线程同步,还可以方便的实现优先级的比较操作。
三、什么是死锁?死锁产生的条件是什么?
  死锁:多个线程并发执行时,一个线程拥有某个资源的同时还在等待其他线程释放这个资源,这种情况就叫做死锁。也就是无限期阻塞,相互等待
  死锁产生的条件:
  互斥条件:一个资源只能被一个进程使用。
  请求和保持条件:一个进程因请求资源而导致阻塞时对已获得的资源保持不放。
  不剥夺条件:进程获得的资源在未完全使用完之前不可被强行剥夺。
  循环等待条件:若干进程形成首尾相接的环形等待资源关系。
四、进程基本状态和孤儿进程、僵尸进程
  基本状态:创建进程、阻塞进程、释放进程
  孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,这些子进程成为孤儿进程。
  僵尸进程:子进程先于父进程退出后,子进程的PCB需要父进程释放,但是父进程并没有释放,这样的子进程就叫做僵尸进程,僵尸进程就是死掉的进程。
五、操作系统CPU调度算法有哪些?
  批处理系统中的调度算法:
  1、先来先服务:按照进程就绪的先后顺序使用CPU。
  特点:非抢占式,公平,实现简单。但是长进程之后的进程需要等待很长时间,不利于用户体验。
  2、最短作业优先:具有最短完成时间的线程优先执行,非抢占式。
  3、最短剩余时间优先:当一个新就绪的线程比当前运行程序具有更短完成时间时,系统抢占当前线程选择新就绪的线程执行。
  特点:改善短进程的周转时间,但是如果短进程源源不断地进来可能使长进程长时间得不到相应,产生饥饿现象。
  4、最高相应比优先:一个综合算法,调度时首先计算每个进程的相应比R,之后总选择R最高的线程执行。
  R=(处理时间+进程时间)/处理时间
  交互系统中的调度算法:
  1、时间片轮转调度算法:每个进程分配一个时间片,允许该进程在该时间段内运行,如果该时间片结束时进程还在运行则剥夺该进程的使用权并分配给另一个进程。如果进程在时间片结束前完成或阻塞,则CPU立即进行切换。
  2、虚拟轮转法:主要基于时间片轮转法进行改进,增加了一个辅助队列。对于I/O型进程执行完一个时间片后则进入辅助队列,CPU调度时总是先检查辅助队列是否为空,如果不为空总是优先调度辅助队列的进程,直到就绪队列为空才调用就绪队列的进程。
  3、最高优先级调度算法:选择优先级最高的线程优先执行。
  · 优先级可以静态不变也可以动态调整。
  · 优先数决定优先级。
  · 就绪队列可以按照优先级组织。
  · 实现简单,但不公平,可能会使优先级低的进程产生饥饿现象。
  4、多级反馈队列调度算法
六、分页和分段有什么区别
  1、段是信息的逻辑单位,它是根据用户的需求划分的,因此段对用户是可见的。页是信息的物理单位,是为了管理主存的方便而划分的,对用户是透明的。
  2、段的大小不固定,由它所完成的功能决定。页的大小固定,由操作系统决定。
  3、段向用户提供的是二维地址空间,页向用户提供的是一维地址空间。
  4、段便于信息的保护和共享,页的保护和共享收到限制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值