操作系统
文章平均质量分 79
根据王道考研的资料,整理的笔记
Mr.huang
做个极客
展开
-
互斥锁(mutex lock)
如果锁是可用的,调用acqiure()会成功,且锁不再可用。当一个进程试图获取不可用的锁时,会被阻塞,直到锁被释放。解决临界区最简单的工具就是互斥锁(mutex lock)。一个进程在进入临界区时应获得锁:在退出临界区时释放锁。函数acquire()获得锁,而函数release()释放锁。互斥锁的主要缺点是忙等待,当有一个进程在临界区中,任何其他进程在进入临界区时必须连续循环调用acquire(。需要连续循环忙等的互斥锁,都可称为自旋锁(spin lock),如TSL指令、swap指令、单标志法。原创 2023-03-30 08:38:54 · 945 阅读 · 0 评论 -
进程互斥的硬件实现方法
逻辑上来看 Swap 和 TSL 并无太大区别,都是先记录下此时临界区是否已经被上锁(记录在 old 变量上),再将上锁标记 lock 设置为 true,最后检查 old,如果 old 为 false 则说明之前没有别的进程对临界区上锁,则可跳出循环,进入临界区。利用“开/关中断指令”实现(与原语的实现思想相同,即在某进程开始访问临界区到结束访问为 止都不允许被中断,也就不能发生进程切换,因此也不可能发生两个同时访问临界区的情况)Swap 指令是用硬件实现的,执行的过程不允许被中断,只能一气呵成。原创 2023-03-27 08:46:50 · 326 阅读 · 0 评论 -
进程互斥的软件实现方法
Peterson算法 算法思想:结合双标志法、单标志法的思想。如果双方都争着想进入临界区,那可以让进程尝试“孔 融让梨”(谦让)。做一个有礼貌的进程。原创 2023-03-26 23:51:37 · 177 阅读 · 2 评论 -
进程的同步与互斥
来看一下ChatGPT的回答进程同步是指多个进程在共享资源时,需要协调它们的行为,以避免出现竞争条件或其他不良的交互效果。在计算机系统中,进程同步是一种必要的机制,因为多个进程可能需要同时访问某个共享资源,例如硬盘、打印机、网络接口等等。如果这些进程没有进行协调,就会出现数据冲突、死锁等问题。进程同步可以通过各种方法来实现,例如使用锁、信号量、条件变量等机制。这些机制都是为了控制多个进程之间的访问和操作,以确保它们按照一定的顺序来执行,避免出现冲突和错误。原创 2023-03-26 22:54:49 · 186 阅读 · 0 评论 -
调度算法(二)
可灵活地调整对各类进程的偏好程度,比如CPU密集型进程、I/O密 集型进程(拓展:可以将因I/O而阻塞的进程重新放回原队列,这样 I/O型进程就可以保持较高优先级)在 k 级队列的进程运行过程中,若更上级的队列 (1~k-1级)中进入了一个新进程,则由于新进程处于优先级更高的 队列中,因此新进程会抢占处理机,原来运行的进程放回 k 级队列 队尾。做题时的区别在于:非抢占式只 需在进程主动放弃处理机时进行调度即可,而抢占式还需 在就绪队列变化时,检查是否会发生抢占。既可用于作业调度,也可用于进程调度。原创 2023-03-26 22:07:39 · 78 阅读 · 0 评论 -
调度算法(一)
综合考虑了等待时间和运行时间(要求服务时间) 等待时间相同时,要求服务时间短的优先(SJF 的优点) 要求服务时间相同时,等待时间长的优先(FCFS 的优点) 对于长作业来说,随着等待时间越来越久,其响应比也会 越来越大,从而避免了长作业饥饿的问题。:非抢占式的调度算法,只有当前运行的进程主动放弃CPU时(正常/异常完成,或主动阻塞),才需要进行调度,调度时计算所有就绪进程的响应比,选响应比最高的 进程上处理机。,计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间。原创 2023-03-22 18:48:51 · 2621 阅读 · 0 评论 -
调度算法的评价指标
它包括四个部分:作业在外存后备队列上等待作业调度(高级调度)的时间、进程在就绪队列上等 待进程调度(低级调度)的时间、进程在CPU上执行的时间、进程等待I/O操作完成的时间。一个作业总共需要被CPU服务多久,被I/O设备服务多久一般是确定不变的,因此调度算法其实只会影响作业/进程的等待时间。对于进程来说,等待时间就是指进程建立后等待被服务的时间之和,在等待I/O完成的期间其实进 程也是在被服务的,所以不计入等待时间。对于作业来说,不仅要考虑建立进程后的等待时间,还要加上作业在外存后备队列中等待的时间。原创 2023-03-22 11:08:31 · 121 阅读 · 0 评论 -
处理机调度
按一定的原则从外存上处于后备队列的作业中挑选一个(或多个)作业, 给他们分配内存等必要资源,并建立相应的进程(建立PCB),以使它(们)获得竞争处理机的权 利。当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进 程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程。,因此如果过于频繁的进行进程调度、切换,必然会使整个系统的效率降低, 使系统大部分时间都花在了进程切换上,而真正用于执行进程的时间减少。进程切换是指一个进程让出处理机,由另一个进程占用处理机的过程。原创 2023-03-22 10:24:38 · 71 阅读 · 0 评论 -
操作系统结构
操作系统中的分层法是指将操作系统的不同功能层次划分为若干个层次,每个层次提供一些特定的功能,上层调用下层提供的接口来完成自己的功能。通过分层法,操作系统的功能被分散到不同的层次中,每层只需实现自己的特定功能,从而更好地实现了系统应用程序的模块化设计,利于软件维护。微内核架构,是指将内核中最基本的功能保留在内核,而将那些不需要的核心态执行的功能移到用户态支撑,从而降低内核的设计复杂性。一个故事:现在,应用程序想要请求操作系统的服务,这个服务的处理同时涉及到进程管理、存储 管理、设备管理。原创 2023-03-22 08:58:33 · 4171 阅读 · 0 评论 -
操作系统运行环境
计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序(即系统外层的应用程序,或简称“应用程序”)。对操作系统而言,这两种程序的作用不同,前者是后者的管理者,因此“管理程序”(即内核程序)要执行一些特权指令,而“被管理程序”(即用户自便程序)出于安全考虑不能执行这些指令。原创 2023-03-21 13:06:39 · 1058 阅读 · 0 评论 -
操作系统概述
操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调 度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本 的系统软件 。原创 2023-03-21 10:03:21 · 56 阅读 · 0 评论