![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
王道操作系统考研笔记
文章平均质量分 67
看星猩的柴狗
IT爱好者一枚,菜狗CTF-PWN手,记录自己的学习经历,请大佬多多指点
展开
-
操作系统-吸烟者问题
操作系统中的吸烟者问题是一个经典的同步问题,它涉及到进程间的同步和互斥。在这个问题中,有三个抽烟者进程和一个供应者进程。每个抽烟者需要三种材料:烟草、纸和胶水来完成吸烟的操作。三个抽烟者分别拥有这三种材料中的一种。供应者进程负责提供这三种材料,但每次只能提供两种,而且供应者需要等待一个吸烟者完成吸烟并发出信号后才能继续提供下一组材料。这个问题的关键在于如何协调供应者和吸烟者之间的动作,以确保每个吸烟者都能得到所需的材料,并且按照正确的顺序进行吸烟。原创 2024-02-23 14:24:45 · 506 阅读 · 0 评论 -
操作系统-生产者-消费者问题+多生产者-多消费者问题(能否改变相邻的P,V操作的顺序 死锁 问题分析与实现)
producer中生产一个产品和consumr中使用一个产品放入临界区的话会增长使用临界区的时间,上锁时间较长,不利于各个进程对临界区的交替使用(但放进去逻辑来说没问题)由于apple orange plate三个同步信号量不可能存在两个或三个为1,因为盘子只能放一个水果,且只有一个盘子。存在前驱关系:缓冲区没满生产者才能生产,缓冲区没空,消费者才能消费。当缓冲区为2的时候,此时可能存在两个同时访问缓冲区的进程。注意互斥是先P后V,同步是先V后P。多:指的是多类生产者与消费者的关系。原创 2024-02-23 13:18:36 · 555 阅读 · 0 评论 -
操作系统-信号量机制(整型信号量 记录型信号量)与用信号量实现进程互斥,同步,前驱关系
接下来CPU为P0服务,假设此时P0进程使用完打印机,执行signal原语,value值加一个,此时如果value值依然小于等于0,那么会执行wakeup,唤醒等待队列中队头的进程。此时由于进程P2进入阻塞态,CPU转而为P3进程服务,然后wait后值为-2小于零,所以也会执行block,然后P3挂入等待队列队尾。然后wait后value的值为-1,此时小于0,意味着此时无法使用资源,此时会使用block函数使得P2进程挂到信号量的等待队列里。首先要进行P0进程的wait,value的初始值是2。原创 2024-02-07 21:20:51 · 1078 阅读 · 0 评论 -
操作系统-进程互斥的硬件实现方法与锁( 中断屏蔽方法 TestAndSet指令 Swap指令 互斥锁)
这样相比等待代价很低。而如果是忙等待期间就让其下处理机并切换进程,那么如果此时正好临界区解锁了,那么又得切换回到原来要访问临界区资源处于忙等待得进程才可以使用临界区(当然,这样得前提是有进程上锁后使用临界区和解锁的总共时间较短,如此其他进程忙等待时间就比较短)最后,虽然TestAndSet指令在某些情况下可能不适用于用户进程,但在多处理机系统的内核进程中,它仍然是一个非常有价值的工具,用于实现对临界资源的互斥访问。如果返回的旧值为0(表示锁未被占用),则进程进入临界区,并将锁设置为1,防止其他进程进入。原创 2024-02-05 19:49:45 · 774 阅读 · 0 评论 -
操作系统-进程互斥的软件实现方法(单标志法 双标志先检查法 双标志后检查法 Peterson算法)
此时P0进程的while循环执行到一半切换进程到P1时候此时也会进入while循环,当P1进程的while循环执行到一半切换进程到P0进程此时依然会执行P0进程的while循环,这样反复切换但时钟卡在各自进程的while循环。这种方法会限制下一次的使用者,如果下一层的使用者一直不使用,那么将导致自己不能连续使用两次。让权等待:此时如果进不了临界区,会卡在while循环一段时间,浪费处理机资源。此时A打印到一半切换到进程B了,那么此时打印的内容会混合在一起了。注意while循环没有内容(有;原创 2024-02-05 12:37:56 · 248 阅读 · 0 评论 -
操作系统-进程同步&进程互斥(对临界资源的互斥访问的逻辑 互斥访问原则 )
异步:比如两个并发进程,一个进程快运行结束了,另一个进程才运行到中间部分。速度不可预知,并且不会管另一个进程运行到哪里了,自己独立推进运行如果要实现某个进程的某条指令在另一个进程的某条指令之前执行,那么需要使用到进程同步进入区(Entry Section):这部分的代码负责检查是否可以进入临界区。如果条件允许,即没有其他进程正在访问临界资源,那么将设置一个标志,这个标志表明当前有进程正在访问临界资源,从而阻止其他进程同时进入。临界区(Critical Section):这是实际访问临界资源的代码段。原创 2024-02-05 11:21:54 · 301 阅读 · 0 评论 -
计算机网络-调度算法-2(时间片轮转 优先级调度算法 多级反馈队列调度算法 多级队列调度算法)
此时第二级队列不为空,P2出队列,运行P2,此时运行一个时间片后,P3进入第一级队列,由于此时第一级队列不为空,此时P2的进程被P1强占,然后P3上处理机。此时第一级队列为空,会给第二级队列分配时间片,第二级队列队头P1出队,此时分配的时间是两个时间片,此时P1的运行时间还没有全部结束,会被放到第三级队列。P0进入第1级队列,第一级队列的时间片大小只有一个时间片大小,P1执行完一个时间片后,此时还没有结束,便进入下一级队列,短进程花费时间更少:短进程经过的队列少,相比于长进程,其总共用的时间也少些。原创 2024-01-31 22:01:26 · 1425 阅读 · 0 评论 -
操作系统-调度器与闲逛进程(调度程序与进程和线程调度)和调度算法的指标(CPU利用率 系统吞吐量 周转时间 等待时间 响应时间)
在操作系统中,一个作业(或进程)的CPU服务时间和I/O服务时间通常由作业本身的特性决定,例如所需的计算量和所需处理的数据量。这意味着,无论使用哪种调度算法,这些服务时间基本上是不会改变的。创建完新进程,此时该进程会进入就绪队列,此时可能会由于该刚进入就绪态的队列的程序使得就绪队列变化,那么调度程序可能检查一下是否需要让当前进程下处理机,是否让这个刚进入就绪态的进程上处理机(进程调度)IO中断(某些进程的等待事件发生了)使得就绪队列改变,调度程序就会检查这个新就绪的进程是否需要进入运行态。原创 2024-01-29 20:11:18 · 494 阅读 · 0 评论 -
操作系统-调度的概念,层次(低中高级调度和挂起状态与七模型)和进程调度的过程,时机,切换,方式(临界区,进程调度的时机,方式,切换与过程)
狭义的进程切换是从就绪队列中选中一个要运行的进程,该进程可以是刚刚被暂停执行放到就绪队列的进程,此时不需要进程切换,因为还是原来的进程。如果该进程是另一个进程,那么就还需要进程切换(因为是不同进程)就绪态的进程调到外存中,则该进程对应就绪挂起。当需要执行时再将该进程的内容激活,即移动到内存中,此时变为就绪态。中断处理过程张进程切换就是从中断处理程序跳到其他程序。保持是保持到进程控制块中(PCB)恢复是从PCB读出相应信息然后恢复。切换频率越高,并发度越高。原创 2024-01-29 15:49:06 · 363 阅读 · 0 评论 -
操作系统-线程的实现方式和多线程模型(用户级线程 内核级线程 多线程模型的情况)和线程的状态,转换,组织,控制
缺点:被阻塞在某段代码时整个进程的其他线程都会阻塞,且多个线程都是运行在一个CPU的(CPU的调度单位依然是进程)操作系统不能意识到用户级线程的存在,它只是在执行进程的代码,代码中的线程库部分能够实现并发执行各个线程。引入内核级线程后,CPU调度的基本单位是线程,多个线程也可以分派到多个CPU上并行运行。如QQ有三个功能,这三个功能需要同时进行,通过进程实现就是三个进程分别实现这三个功能。一个内核级线程对应多个用户级线程就是之前的多对一的情况。而一个内核级线程对应一个用户级线程就是之前的一对一情况。原创 2024-01-27 16:45:02 · 542 阅读 · 0 评论 -
操作系统-线程的概念(什么是线程 为什么线程共享进程资源 为什么线程切换开销低 引入线程的变化 线程属性 为啥要引入线程)
此时qq进程内的视频文字聊天传输文件可以同时进行,如果进程内部是顺序执行的话,那么将某一时刻只能执行一个功能,显然不可能同时做这几件事情。CPU此时轮流为各个线程服务(即线程并发)除CPU资源外其他资源都是按进程来分配的,而CPU的使用权才会有根据线程来得到其使用权。原创 2024-01-25 21:35:44 · 968 阅读 · 0 评论 -
操作系统-进程通信(共享存储 消息传递 管道通信 读写管道的条件)
分享吃瓜文涉及到了进程通信进程通信需要操作系统支持。原创 2024-01-25 17:08:00 · 1078 阅读 · 0 评论 -
操作系统-进程控制(如何实现进程控制 如何实现原子性 相关进程控制原语)
控制进程的状态变换。原创 2024-01-23 19:26:12 · 885 阅读 · 0 评论 -
操作系统-进程的状态与切换与组织
此时由于进程2需要等待操作系统将打印机资源分配给进程2这个事件的发生,此时CPU让其下CPU,进程1来CPU上运行,当打印机之前工作完后处于空闲时。操作系统将打印机资源分配给进程2.,进程2等待的事件已经发送。操作系统让进程2由阻塞态变为就绪态。运行内存中的某个程序指令序列,此时运行到系统调用,发现IO设备正在工作,暂时无法获得其资源。主动行为:自己主动请求等待某个事件发生或主动申请系统调用,条件没满足即主动变为阻塞态。此时运行的进程1已经运行结束了,结束时会发生exit系统调用,此时会进入终止态。原创 2024-01-23 17:20:11 · 365 阅读 · 0 评论 -
操作系统-进程的概念,组成,特征(PCB 程序如何运行)
进程是一个程序的执行过程,进程实体是执行某个时刻在内存的进程的所属部分。引入线程后,接受调度最小单位为线程,但进程依然是独立获得资源的最小单位。进程实体理解为进程运行时在内存中属于进程的部分。独立性:不依赖别的进程来运行或者获得资源等。操作系统以进程来分配为单位分配对应的资源。注意进程存在的唯一标志以及进程最基本特性。动态的,因为一直在执行,一直变化。任务管理器:显示运行的进程。打开三个qq,有三个进程。PCB包含进程的很多信息。各个进程的PID不同,注意进程存在的唯一标志。原创 2024-01-23 14:20:02 · 425 阅读 · 0 评论 -
操作系统-虚拟机(传统计算机 虚拟机 两类VMM对比 指令等级 特权与敏感)
运行模式:第一类假设VMM在ring0,虚拟机操作系统在ring1,虚拟机用户空间在ring2,此时根据指令类型跳转到不同地方执行,此时可以认为将特权指令分为ring1和ring0,将不敏感指令防在ring1(对虚拟机操作系统做相关要求即可实现ring1指令会跳转到虚拟操作系统执行),敏感指令放在ring0,这样对于跳转到VMM的指令就比较少了,同时切换VMM次数自然也就少了。敏感指令:是指在虚拟化环境中,虚拟机监视器(VMM)需要捕获并模拟的指令,以便客户操作系统能够在没有直接访问硬件的情况下运行。原创 2024-01-23 13:20:01 · 1130 阅读 · 0 评论 -
操作系统-操作系统体系结构(内核 外核 模块化 宏内核 微内核 分层结构)
外核给用户进程直接分配未经抽象的硬件资源,当用户进程经常要随机访问自己所分配到的虚拟外存空间时,此时由于实际对应的物理空间是离散的,在随机访问各个位置时可能需要大量的移动磁头。在普通操作系统中,进程申请内存空间时得到的时虚拟的地址空间(连续的),此时虚拟页面对应到实际的物理页框中,这些物理页框在内存中其实是离散的。都能相互调用,此时如果某个模块出现问题,可能出现的问题是调用的模块的问题,也有可能是自身模块的问题。采用微内核时,进程管理,存储管理,设备管理都涉及到需要请求内核的工作,此时需要变态。原创 2024-01-21 11:02:13 · 1475 阅读 · 0 评论 -
操作系统-操作系统引导(磁盘 操作系统引导过程)
开机时,CPU首先去主存执行ROM的引导程序,这时该引导程序会让CPU把磁盘的主引导记录读入内存,然后根据分区表执行磁盘引导程序,此时会找到C盘然后将C盘的引导记录PBR读入内存,然后会执行该引导记录,找到启动管理器,此时会从根目录找到启动管理器读入内存,CPU再执行启动管理器。会找到/Windows/Boot文件夹,然后执行里面的内容。根目录:双击打开C盘会看见的那些文件和文件夹。主引导记录不属于某个盘。原创 2024-01-21 08:20:04 · 413 阅读 · 0 评论 -
操作系统-系统调用(定义 与库函数的区别 为什么需要系统调用 分类 过程)
操作系统给用户提供的向上接口就是GUI,程序接口是系统调用组成类似函数,但有区别。原创 2024-01-20 23:28:04 · 359 阅读 · 0 评论 -
操作系统-中断和异常(中断作用 类型 内外中断 中断机制原理)
时钟中断就是每隔一段时间中断一次,然后执行中断程序后会切换到用户态去执行其他程序,如此反复,可能多次时钟中断后又开始执行原程序。IO中断就是外部设备发出的,当输入或输出操作完成时(即IO操作完成或者设备工作完成),会发出中断信号。中断向量表的内容存储中断向量,中断向量的内容就是跳转到中断处理程序的指令。陷入指令是主动转换状态,但它并不是特权指令。当前执行指令非法是指参数有问题等其他原因。故障这节没涉及到,之后会有更详细的介绍。刚启动CPU上运行的是内核程序。原创 2024-01-19 21:55:29 · 398 阅读 · 0 评论 -
操作系统-操作系统的运行机制(内核程序 应用程序 特权指令 非特权指令 内核态 用户态 变态)
CPU如果判断指令类型为特权指令,而当前态为用户态,会发出中断信号,硬件自动完成变态。然后转为内核态并处理中断,处理完后再转为用户态返回到原程序或者其他程序。只有内核程序才能使用特权指令,只有处理器处于内核态才能执行内核程序和特权指令。区分指令是特权还是应用,然后还要判断当前状态。操作系统包括内核和其他程序(如GUI)转换为机器码放入内存,然后按顺序执行。原创 2024-01-19 21:22:07 · 412 阅读 · 0 评论 -
操作系统-操作系统的发展与分类
程序写到纸带上,然后机器读取执行纸带上的内容,然后再将内容写到纸带上,然后程序员再取纸带。用户独占全机:不能由两个人同时使用,得一个人一个人的来。监督程序控制计算机自动读入磁带内容然后输出到磁带中去。首先会由外围机将各个纸带处理好存到磁带中。有孔代表1,没孔代表0。此时一次读入多道程序。原创 2024-01-18 23:59:28 · 383 阅读 · 0 评论 -
操作系统-操作系统的特征(并发 共享 虚拟 异步 之间关系)
假设此时没有并发性,那么每个时刻只有一个程序运行,此时没有必要资源同时共享,而当没有资源同时共享后,那么每个时刻如果并发运行程序需要交替访问资源,由于资源该时间段内只有一个程序可以使用,此时没有必要并发运行程序了。此时失去并发性,那么每个时间段只有一个程序允许,此时的内存就是该程序的大小(不需要空分复用),也没有必要微观交替执行其他程序了(时分复用)没有并发就谈不上虚拟和异步,又因为并发和共享是互为存在条件的,所以也可以把并发和共享作为一个整体来说没有并发和共享就谈不上虚拟和异步。并行:同时做多个事件。原创 2024-01-13 11:38:18 · 605 阅读 · 0 评论 -
操作系统-操作系统的概念和功能
图中用户和应用程序有部分相同应用程序和操作系统也有部分相同。原创 2024-01-13 10:41:53 · 416 阅读 · 0 评论