操作系统
文章平均质量分 80
FangYwang
这个作者很懒,什么都没留下…
展开
-
哲学家就餐问题详解
2.23 哲学家就餐问题1965年由Dijkstra提出问题描述5个哲学家围坐圆桌5只餐叉间隔摆放哲学家行为为思考或进餐哲学家进餐必须同时使用两边的餐叉思考时蒋餐叉放回原处两个哲学家不使用同一把叉子尽量避免死锁和饥饿如图方案一 取左叉都去拿左边的叉子,死锁semaphore fork[5] = {1, 1, 1, 1, 1};void main(){ cobegin {philosopher(0); philosopher(1);原创 2020-12-23 00:37:41 · 3795 阅读 · 0 评论 -
死锁的充分必要条件、死锁预防、死锁避免、死锁检测和解除
2.19.2 死锁的条件必要条件互斥:一次只有一个进程可以使用一个资源占有且等待:当进程等待其他资源时继续占有已有的资源不可抢占:进程不能强行占有其他进程占有的进程充分条件循环等待:存在一个闭合的进程链,每个进程至少占有此链中下一个进程所需的一个资源2.19.3 死锁的解决死锁预防:防止死锁的四个条件之一死锁避免:防止循环等待的出现死锁检测与解除2.20 死锁预防间接方法:防止死锁的三个必要条件之一防止互斥:不可防止防止占有且等待:要求进程一次性请求所有需要的资源(效率原创 2020-12-23 00:36:32 · 2337 阅读 · 2 评论 -
死锁 操作系统第二章知识点归纳总结
第二章 进程管理 死锁一组相互竞争系统资源或进行通信的进程间的永久阻塞2.19 死锁原理当一组进程中的每个进程都在等待某事件,而只有同组进程中阻塞的其他进程能够促发该事件时,死锁发生2.19.1 资源分类可重用资源:一次仅供一个进程使用且不因使用而消耗的资源,如cpu可消耗资源:可被创建(生产)和销毁(消耗)的资源,如中断、消息竞争这两种资源时,如果存在循环等待,可能会引起死锁2.19.2 死锁的条件必要条件互斥:一次只有一个进程可以使用一个资源占有且等待:当进程等待其他资源时继原创 2020-12-23 00:28:58 · 372 阅读 · 0 评论 -
管程理解及用管程实现生产者消费者问题
2.17 管程管程是一个程序设计语言结构,采用了集中式的进程同步方法,提供了与信号量同样的功能,但更易于控制概念由一个共享数据结构(资源的抽象)和为并发进程执行的一组操作组成,这组操作可同步进程和改变管程中的数据特点局部变量只能被管程内的过程访问进程通过调用管程的一个过程进入管程无论何时仅有一个进程在管程中执行,仅当该进程结束或阻塞时管程才可供其他进程调用(非抢占)管程实现的互斥是一种依靠数据结构的互斥,管程相当于一个互斥函数管程实现同步使用条件变量(局部变量)操作条件变量的两个原创 2020-12-23 00:15:14 · 814 阅读 · 4 评论 -
读者写者问题详解 操作系统
2.16 读者写者问题抽象解释多个进程访问一个共享的数据区读者(读进程)只能读数据,写者(写进程)只能写数据适用于数据库、文件、内存、寄存器等数据区的访问模型如12306购票系统,由于用户量庞大和数据量巨大,不可避免地会出现多个进程同时查询(读)或修改(写)同一条数据的情况2.16.1 读者写者问题的三个约束条件读者之间不互斥(你和室友可以同时查看元旦那天早上7点的高铁信息)写者之间必须互斥(你和室友不能同时申请购买元旦那天早上七点G1234的6D号位置)读者写者之间也互斥(假如你正原创 2020-12-23 00:12:07 · 8789 阅读 · 2 评论 -
生产者消费者问题 操作系统
2.15 生产者消费者问题Dijkstra对同步问题的抽象抽象解释一个或多个生产者生产资源,放入临界区一次仅有一个消费者访问临界区并消耗资源每次仅有一名生产者/消费者访问临界区临界区满时生产者不会继续添加资源临界区空时消费者不会继续消耗资源流程图要使用一个空间信号量告知生产者有无空间要使用一个资源信号量告知消费者有无资源2.15.1 生产者消费者问题要点先申请资源,再申请互斥,顺序不可颠倒,否则假设消费者P0申请了互斥后,等待资源,生产者P1需要生产资源,却无法申请互斥进入原创 2020-12-23 00:10:16 · 1021 阅读 · 0 评论 -
信号量详解
2.14 信号量(重点)进程通过传递信号进行协作进程因为某个条件阻塞,不能继续推进进程因为某个条件被唤醒,可以继续推进可以实现信号灯作用的整数变量:信号量信号量的三种操作初始化:初始化为非负数,代表某种初始状态自增semSignal(操作代号:V):该操作使信号量+1,若此时信号量仍<=0,唤醒被P操作阻塞的进程自减semWait(操作代号:P):该操作使信号量-1,若此时信号量<0,则阻塞执行P该操作的进程2.14.1 信号量分类二元信号量:信号量值为0/1原创 2020-12-23 00:01:37 · 4068 阅读 · 0 评论 -
互斥:硬件方法总结
2.13.2 互斥:硬件方法中断禁用(屏蔽中断)用于单CPU系统使用屏蔽中断的方法,屏蔽时无法切换进程,达到进程互斥的目的while (true ) { disable interrupt //屏蔽中断 critical section //临界区 enable interrupt //启用中断 remainder //其余部分}评价显而易见的效率低屏蔽期原创 2020-12-22 10:11:28 · 1050 阅读 · 0 评论 -
互斥:软件方法 Dekker互斥算法和Peterson互斥算法详解
2.13 互斥要求空闲让进:若空闲,申请即进忙则等待:只允许临界区存在一个进程,若忙碌,区外等待有限等待:进程等待的时间是有限的,不会造成死锁、饥饿让权等待:进程不能在临界区长时间阻塞等待某事件以上类比生活中任何公共资源都可,如公用电话2.13.1 互斥:软件方法思路在进入区设置标志来判断是否有进程在临界区若临界区已有进程,则循环等待进程离开临界区后在退出区修改标志第一代:轮换使用临界区每个进入临界区的进程的权限只能被另一个进程赋予int turn=0;//进程P0原创 2020-12-22 10:10:25 · 1727 阅读 · 2 评论 -
微内核、多线程、SMP对称多处理、分布式操作系统
1.4现代OS特征(重点)微内核给内核分配一些基本功能:地址空间、通信、基本调度基于C/S架构,可定制服务程序,称为“服务器”系统结构更灵活优点:简化了实现,提供了灵活性,适合于分布式环境单体内核大内核作为一个进程实现,共享地址空间OS提供的功能大都由此内核提供多线程把执行一个应用程序的进程划分为可同时进行的多个线程(线程为工作单元)进程:一个或多个线程和相关资源的集合调度单元:线程资源单元:数据对称多处理(SMP,多个处理器)多个线程和进程原创 2020-12-22 00:55:56 · 494 阅读 · 1 评论 -
分时系统与实时系统
1.2.4 分时系统(分享处理器时间)为实现人机交互,由多终端共享主机分时系统:采用多道程序设计多个用户共享处理器多个用户通过不同终端同时访问系统,由OS控制每个用户在很短的时间内交替执行(快于人的反应时间)分时系统特点:多路性,独立性,及时性,交互性系统多道批处理分时系统目标充分利用cpu人机交互指令源作业用户第一个分时系统:CTSS一句话做题:写入的比已有的占空间大:已有的写出写入的小,腾出空间给写入的,但一部分仍留存在其中时间片技原创 2020-12-22 00:54:38 · 1979 阅读 · 0 评论 -
简单批处理与多道批处理
1.2.2简单批处理第一个操作系统是批处理系统,诞生于20世纪50年代中期监控程序(早期操作系统):一次处理一批程序(歌单,一次播放一组歌,但一个一个播放)程序完成处理后返回监控程序,监控程序自动加载下一个程序监控程序功能:作业的自动续接内存保护:保护监控程序所在的内存区域定时器:防止某作业独占系统特权指令:只可由监控系统执行的指令中断正是内存保护和特权指令的出现引入了运行模式,不同模式的访问权限不同用户模式:用户程序以此模式执行,有些内存区域受到保护,特权指令不允许执行原创 2020-12-22 00:53:58 · 2355 阅读 · 0 评论 -
线程、线程与进程、ULT与KLT
2.6 线程进程分为两个组成部分调度的基本单位资源的独立单元线程作为基本调度单位独立出来,由OS调度多线程单个进程内支持多个并发路径的能力单线程一个进程只有一个线程线程是进程中的一个实体,是独立调度和分派的单元2.6.1 进程vs线程一个进程可以有一个或多个线程挂起或终止一个进程=挂起或终止其内部所有线程线程执行状态state:派生、阻塞、解除阻塞、结束上下文context栈局部变量共享的资源和内存多线程比单线程多一个tcb(线程的“pcb”)线程优点原创 2020-12-22 00:53:04 · 994 阅读 · 0 评论 -
进程切换与模式切换
2.4.3进程切换中断普通中断timeout:进程时间片耗尽I/O中断:I/O就绪,OS决定该唤醒哪个进程内存失效(缺页):阻塞当前进程陷阱(自陷)进程错误或异常进程切换原因普通中断:对外部事件的反应陷阱:处理异常系统调用:调用内核程序中断过程save context(P1)–>renew pcb(P1)–>move pcb(P1) in queue–>change process(P1->P2)–>renew pcb(P2)–>rene原创 2020-12-22 00:51:42 · 3304 阅读 · 1 评论 -
进程与程序的区别
2.1.2 进程VS程序程序是剧本,进程是演出进程基本特征:动态性(本质特征):进程存在生命周期并发性(重要特征):可同其他进程一同推进独立性:各进程地址空间相互独立(逻辑地址)异步性:进程按不可预知速度推进与程序相比:1. 进程是正在计算机执行的实例2. 进程=PCB+程序代码+数据3. 程序是静态的,没有生命周期4. 进程与程序并无一一对应关系,如一个dad()程序中涉及多个PV进程5. 引入进程的概念是为了容易正确解释多道程序并发...原创 2020-12-22 00:49:32 · 378 阅读 · 0 评论 -
实时系统与实时调度
2.11 实时系统与实时调度一些概念计算结果存在时效性,过期无意义,如新闻实时系统:系统可及时(即使)响应外部请求,在规定时间内完成对该事件的处理,并控制所有实时任务协调一致运行实时任务:具有及时性要求,常常重复执行的特定进程开始截止时间:到点必须开始完成截止时间:deadline2.11.1 实时任务分类按有无截止时间硬实时:必须满足截止时间,否则产生破环性影响(截止日期前交期末论文)软实时:不强制要求,超时仍有意义(打算晚上十一点前睡觉,虽然十一点没睡着,但是比平常睡得早)原创 2020-12-22 00:47:45 · 641 阅读 · 0 评论 -
进程同步 操作系统第二章知识点归纳总结
第二章 进程管理 同步2.12 并发的原理同步出现的意义资源是有限的,进程是相互独立的,进程要协调完成任务,必须要求同步并发相关原子操作:由一个或多个指令序列实现的动作或函数,这组指令要么全部执行,要么全部不执行临界资源:需要互斥访问的资源,如打印机临界区:访问临界资源的代码段,必须互斥运行互斥:当一个进程在临界区访问共享资源时,其他进程不能进入该临界区访问共享资源的情形活锁:两个或两个以上进程为影响其他进程而持续改变自己的状态,但不做有用工作的状态(两个人面对面走进一条很窄的巷子,互相原创 2020-12-22 00:44:21 · 1440 阅读 · 0 评论 -
单处理器调度算法详解
调度算法(重点)饥饿的理解轮到该进程使用CPU时,另一个进程以某种原因抢先占用CPU(抢占)几个人一起吃一块蛋糕,轮到你吃时,你后边的人抢到你前面吃掉了你的那一份,没吃到原本该你吃的东西,你会很饥饿非抢占FCFS、SPN、HRRN抢占RR、SRT、Feedback开销小FCFS、RR有饥饿SPN、SRT、Feedback2.10.1 FCFS先来先服务按照请求cpu顺序执行对短进程不利,参考超市购物对I/O密集型不利,因为cpu需求小属于非抢占,无饥饿,响应时间可能很长早原创 2020-12-18 02:38:32 · 871 阅读 · 0 评论 -
进程调度 操作系统第二章知识点归纳总结
第二章 进程管理 -调度2.7 调度的类型长程调度:决定哪个程序能进入系统成为进程,是创建进程的部分,用时最长中程调度:决定哪个进程能进入内存,是换入进程的部分,用时中等短程调度:决定哪个进程下次运行,是就绪转换为运行的部分,用时最短执行频繁程度:短程调度>中程调度>长程调度cpu密集型进程:主要执行计算工作,偶尔用到I/O设备I/O密集型进程:执行时间主要取决于I/O操作的时间调度的目的:满足系统目标(性能),把进程分配到一个或多个cpu上去2.7.1 长程调度控制哪原创 2020-12-18 02:35:32 · 605 阅读 · 0 评论 -
进程的描述与控制 操作系统第二章知识点归纳总结
第二章 进程管理 描述与控制2.1 什么是进程程序代码+相关数据+程序控制块PCB当处理器开始执行一个程序的代码时,称这个执行的实体为进程2.1.1 进程和进程控制块PCBPCB(Process Control Block)PCB是进程中断的基础,恢复执行后好像从未中断一样PCB由OS创建和管理支持多进程的工具PCB是用于进程管理的数据结构PCB元素作用id标识符state状态PC程序计数器memory pointer内存指针co原创 2020-12-15 01:38:19 · 430 阅读 · 0 评论 -
操作系统概述 操作系统第一章知识点归纳总结
第一章 概述1.1 目标与功能1.1.1操作系统:控制应用程序的程序应用程序和硬件间的接口三大目标:方便:用户使用有效:使用系统资源扩展:开发、测试、引入新的系统功能计算机中硬件以上的第一层软件,是应用软件、系统软件的基础。服务:1. 程序开发:提供编辑器、调试器等应用程序开发工具 2. 程序运行:程序的加载、空间分配等工作3. I/O访问:隐藏I/O细节,统一I/O接口4. 文件访问:隐藏物理介质细节,保护访问5. 系统访问:控制对共享系统的访问,避免资源冲突6原创 2020-12-13 16:53:18 · 701 阅读 · 1 评论 -
OS操作系统概念简介
操作系统操作系统是一种程序:控制应用程序执行的程序操作系统是一种接口:应用程序和计算机硬件间的接口操作系统就是让普通人也会用电脑的软件(为了方便),就是把整个电脑资源包装起来的一个图形界面(为了有效),这个图形界面随着计算机硬件的进步会逐渐更新(可扩展)我们熟悉的操作系统,有常见的Win系和MacOS以及以安卓和IOS为代表的移动设备操作系统1.让普通用户也会用电脑前面说到,引入操作系统的目的之一是为了让普通用户也会用电脑。这里的普通用户指的就是终端用户,终端用户通常不关心计算机的硬件原创 2020-09-26 00:28:30 · 1388 阅读 · 0 评论