![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
战士小小白
作者为在校大三学生,计划考研,每周更新博客,其内容包括但不限于数据结构、计算机组成原理、计算机网络、操作系统、算法、Java、python、数据库...
展开
-
操作系统PV大题_小和尚老和尚喝水问题
某寺庙有小和尚和老和尚若干人,水缸一只,由小和尚提水放入缸中给老和尚引用。水缸可容纳12桶水,水取自同一口水井,水井井口直径窄,每次仅能容纳一只水桶取水,水桶总数为4个。每次小和尚只能往水缸里放1桶水,老和尚每次也只能取出一桶水,并且小和尚放入水和老和尚取出水不可同时进行。试用wait()和signal()原语写出小和尚和老和尚入水、取水的活动过程。原创 2022-10-19 23:51:28 · 2398 阅读 · 0 评论 -
操作系统第十六讲——生产者消费者问题
系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用。(注:这里的“产品”理解为某种数据)生产者、消费者共享一个初始为空、大小为n的缓冲区。时,生产者才能把产品放入缓冲区,否则必须等待。时,消费者才能从中取出产品,否则必须等待。缓冲区是临界资源,各进程必须。原创 2022-09-26 15:31:15 · 298 阅读 · 0 评论 -
操作系统——计算机系统概述补充
进行管理的软件,既管理硬件资源(如处理机、存储器),也管理软件资源(如文件)4、系统调用是操作系统为应用程序使用。管理系统缓存的系统调用。两种方式来使用计算机。5、系统调用的目的是。原创 2022-09-25 22:21:17 · 381 阅读 · 0 评论 -
操作系统第十五讲——进程互斥的硬件实现方法
利用“开/关中断指令”实现(与原语的实现思想相同,即在某进程开始访问临界区到结束访问为止都不允许被中断,也就不能发生进程切换,因此也不可能发生两个同时访问临界区的情况)缺点:不适应于多处理机;只适应于操作系统内核进程,不适应于用户进程(因为开/关中断指令只能运行在内核态,这组指令如果能让用户随意使用会很危险)原创 2022-09-25 19:48:14 · 156 阅读 · 0 评论 -
操作系统第十四讲——进程互斥的软件实现方法
每个进程在进入临界区之前先检查当前有没有别的进程想进入临界区,如果没有,则把自身对应的标志flag[i]设为true,之后开始访问临界区。这种必须“轮流访问”带来的问题是,如果此时允许进入临界区的进程是P0,而P0一直不访问临界区,那么虽然此时临界区空闲,当时并不允许P1访问。因此,双标志后检查法虽然解决了“忙则等待”的问题,但是又违背了“空闲让进”和“有限等待”原则,会因各进程都长期无法访问临界资源而产生“饥饿”现象。两个进程都争着想进入临界区,但是谁也不让谁,最后谁都无法进入临界区。原创 2022-09-25 19:27:20 · 417 阅读 · 0 评论 -
操作系统第十三讲——进程同步、进程互斥
有的进程之间需要相互配合完成工作,各进程的工作推进需要遵循一定的先后顺序。1、对临界资源的访问,需要互斥的进行,即同一时间段内智能允许一个进程访问该资源。忙则等待 临界区正在被访问时,其他试图访问的进程需要等待。进入区 检查是否可进入临界区,若可进入,需要“上锁”让权等待 进不了临界区的进程,要释放处理机,防止忙等。有限等待 要在有限时间内进入临界区,保证不会饥饿。空闲让进 临界区空闲时,应允许一个进程访问。临界区 访问临界资源的那段代码。退出区 负责“解锁”剩余区 其余代码部分。原创 2022-09-25 16:47:08 · 507 阅读 · 0 评论 -
计算机网络第四讲——性能指标(2)
往返时延RTT:从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延。时延:指数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需要的时间。发送时延(传输时延):从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需要的时间。时延带宽积又称为以比特为单位的链路长度。发送时延受两个因素影响:一个是有多长的数据,另一个是发送的快慢。RTT越大,在收到确认之前,可以发送的数据越多。排队时延:等待输出/入链路可用。处理时延:检错 找出口。原创 2022-09-25 11:07:54 · 143 阅读 · 0 评论 -
操作系统第十二讲——调度算法的评价指标
它包括4个部分:作业在外存后备队列上等待作业调度(高级调度)的时间、进程在就绪队列上等待进程调度(低级调度)的时间、进程在CPU上执行的时间(运行态)、进程等待I/O操作完成的时间(阻塞态)周转时间:从作业被提交给系统开始,到作业完成为止的这段时间间隔。系统吞吐量 = 总共完成了多少道作业 / 总共花了多少时间。平均周转时间 = 各作业周转时间之和 / 作业数。周转时间 = 作业完成时间 - 作业提交时间。CPU利用率 = 忙碌的时间 / 总时间。带权周转时间与周转时间都是越小越好。原创 2022-09-25 10:25:38 · 162 阅读 · 0 评论 -
操作系统第十一讲——进程调度的时机、切换与过程、方式
原子操作不可中断,要一气呵成(如之前讲过的修改PCB中进程状态标志,并把PCB放到相应队列中)1、在处理中断的过程中。中断处理过程复杂,与硬件密切相关,很难做到在中断处理过程中进行进程交换。2.2 有更紧急的事需要处理(如I/O中断)1.3 进程主动请求阻塞(如 等待I/O)2.3 有更高优先级的进程进入就绪队列。2、进程在操作系统内核程序临界区中。1、当前运行的进程主动放弃处理机。2、当前运行的进程被动放弃处理机。需要进行进程调度与切换的情况。2.1 分给进程的时间片用完。不能进行进程调度与切换的情况。原创 2022-09-25 10:05:08 · 333 阅读 · 0 评论 -
操作系统第十讲——调度的概念、层次
有的操作系统会把就绪挂起、阻塞挂起分为两个挂起队列,甚至会根据阻塞原因不同再把阻塞挂起进程进一步细分为多个队列。内存不够时,可将某些进程的数据调出外存。等内存空闲或者进程需要运行时再重新调入内存。一个进程可能会被多次调出、调入内存,因此中级调度发生的频率要比高级调度更高。):按一定的原则从外存的作业后备队列中挑选一个作业调入内存,并。暂时调到外存等待的进程状态为挂起状态(挂起态,suspend):按照某种策略从就绪队列中选取一个进程,将处理机分配给它。的一种调度,在一般的操作系统中都必须配置进程调度。原创 2022-09-25 09:40:49 · 482 阅读 · 0 评论 -
操作系统第九讲——线程的实现方式和多线程模型
内核级线程可以运行任意一个有映射关系的用户级线程代码,只有两个内核级线程中正在运行的代码逻辑都阻塞时,这个进程才会阻塞。缺点:一个用户进程会占用多个内核级线程,线程切换由操作系统内核完成,需要切换到核心态,因此线程的管理成本高,开销大。缺点:一个用户进程会占用多个内核级线程,线程切换由操作系统内核完成,需要切换到核心态,因此线程管理的成本高,开销大。在支持内核级线程的系统中,根据用户级线程和内核级线程的映射关系,可以划分为几种多线程模型。2、用户级线程中,线程切换可以在用户态下即可完成,无需操作系统干预。原创 2022-09-24 20:12:22 · 613 阅读 · 0 评论 -
操作系统第八讲——线程的概念
引入线程后,进程只作为除CPU之外的系统资源的分配单元(如打印机、内存地址空间等都是分配给进程的),使得一个进程内也可以并发处理各种任务(如微信发消息、微信视频聊天、微信传文件可以同时发生)引入线程之后,不仅是进程之间可以并发,进程内各线程之间也可以并发,线程是一个基本的CPU执行单元,也是程序执行流的最小单位。可以把线程理解为“轻量级的进程”原创 2022-09-24 19:25:45 · 133 阅读 · 0 评论 -
操作系统第七讲——进程通信
基于存储区的共享:在内存中画出一块共享存储区,数据的形式、存放位置都由进程控制,而不是操作系统。相比之下,这种共享方式速度更快,是一种高级通信方式。消息头:包括发送进程ID、接收进程ID、消息类型、消息长度等格式化的信息(计算机网络中发送的“报文”其实就是一种格式化的消息)基于数据结构的共享:比如共享空间里只能放一个长度为10的数组。“管道”是指用于连接读写进程的一个共享文件,又名pipe文件。5、数据一旦被读出,就从管道中被抛弃,这就意味着。的(互斥访问通过操作系统提供的工具实现)原创 2022-09-24 19:03:02 · 180 阅读 · 0 评论 -
操作系统第六讲——进程的状态与转换、进程的组织
在这个事件发生之前,进程无法继续往下执行,此时操作系统会让这个程序下CPU,并让它进入“阻塞态”,当CPU空闲时,又会选择另一个“就绪态”上CPU运行。此时该进程会进入“终止态”,操作系统会让该进程下CPU,并回收内存空间等资源,最后还要回收该进程的PCB。:当进程创建完成后,便进入“就绪态”,处于就绪态的进程已经具备运行条件,但由于没有空闲CPU,就暂时不能运行。:如果一个进程此时在CPU上运行,那么这个进程处于“运行态”,CPU会执行该进程对应的程序(执行指令序列)进程的整个生命周期中,原创 2022-09-24 17:25:35 · 396 阅读 · 0 评论 -
操作系统第五讲——进程的概念、组成与特征
4、异步性 各进程按各自独立的、不可预知的速度向前推进,操作系统要提供“进程同步机制”来解决异步问题(会导致并发程序执行结果的不确定性)操作系统需要对各个并发进行的进程进行管理,但凡管理时所需要的信息,都会被放在进程控制块PCB中。结构上看,进程由PCB、程序段、数据段组成。1、动态性 进程是程序的一次执行过程,是动态地产生、变化和消亡的(进程。进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。进程是动态的,进程实体(进程映像)是静态的。进程:是动态的,是程序的一次执行过程。原创 2022-09-24 16:49:33 · 479 阅读 · 0 评论 -
操作系统第四讲——体系结构
大内核:讲操作系统的主要功能模块都作为系统内核,运行在核心态。缺点:需要频繁地在核心态和用户态之间切换,性能低。缺点:内核代码庞大,结构混乱,难以掩护。优点:内核功能少,结构清晰,方便维护。只把最基本的功能留在内核。原创 2022-09-23 21:54:42 · 83 阅读 · 0 评论 -
操作系统第三讲——中断和异常
检查中断信号 内中断:CPU在执行指令时会检查是否有异常发生 外中断:每个指令周期末尾,CPU都会检查是否有外中断信号需要处理。中断的作用:让操作系统内核强行夺回CPU控制权,使CPU从用户态变为内核态。找到相应的中断处理程序:通过“中断向量表”实现。外中断(也称中断):时钟中断、I/O中断请求。内中断(也称异常、例外):陷阱、故障、终止。原创 2022-09-23 20:39:21 · 680 阅读 · 0 评论 -
操作系统第二讲——OS的发展与分类
主要优点:用户请求可以被及时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。硬实时系统:必须在绝对严格的规定时间内完成处理(导弹控制系统,自动驾驶系统,必须严格实时)软实时系统:能够偶尔违反时间规定(12306系统,更新票数晚了一会儿没事)主要优点:能够优先相应一些紧急任务,某些紧急任务不需时间片排队。手工操作阶段: 缺点:人机速度矛盾。原创 2022-09-23 20:10:32 · 167 阅读 · 0 评论 -
操作系统第一讲——操作系统的特征
互斥共享方式:一个时间段内只允许一个进程访问该资源(例如微信和QQ视频不能同时开启)多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行。单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行。虚拟:是指把一个物理上的实体变为若干个逻辑上的对应物。(4GB的电脑可以同时运行超过4GB的程序)异步:只有系统拥有并发性,才有可能导致异步性。4核CPU意味着可以并行地执行4个程序。并发:宏观上同时发生,微观上交替发生。同时共享方式:如对硬盘资源的共享使用。:并发、共享、虚拟、异步。原创 2022-09-23 19:44:00 · 356 阅读 · 0 评论