
操作系统
文章平均质量分 64
迷途小羔羊。
down to the earth
展开
-
三、操作系统内存管理(8)具有快表的地址变换机构
3.18具有快表的地址变换机构: 0.知识总览: 1.局部性原理: (1)时间局部性:如果执行了程序中的某条指令,那么不久后这条指令很有可能再次执行;如果某个数据被访问过,不久之后该数据很可能再次被访问。(因为程序中存在大量的循环) (2)空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近存储单元也很有可能被访问。(因为很多数据在内存中都是连续存放的) (3)在基本地址变换机构中,每次要访问一个逻辑地址都需要查询内存中的页表。...原创 2022-03-14 12:52:27 · 957 阅读 · 0 评论 -
三、操作系统内存管理(7)基本地址变换机构:
1.基本地址变换机构:在基本分页存储管理中用于实现逻辑地址到物理地址转换的一组硬件机构。2.基本地址变换机构可以借助进程的页表将逻辑地址转换为物理地址。 通常会在系统中设置一个页表寄存器(PTR),存放页表在内存中的起始地址F和页面长度M,进程未执行时,F和M放在进程控制块(PCB)中。当进程被调度时,系统内核会把它们放到页表寄存器中。例题:3.小结:参考:《王道操作系统》...原创 2022-03-12 22:43:09 · 931 阅读 · 0 评论 -
三、操作系统内存管理(6)基本分页存储管理的基本概念:
3.16基本分页存储管理的基本概念:0.知识总览: 1.支持多道程序的两种连续分配方式的缺点: (1)固定分区分配:缺乏灵活性,会产生大量的内部碎片,内存的利用率很低。 (2)动态分区分配:会产生很多外部碎片,虽然可以用"紧凑"技术来处理,但是"紧凑"的时间代价很高。如果允许将一个进程分散装入到许多不相邻的分区中,便可充分地利用内存,而无需再进行"紧凑"。 2.非连续分配方式/离散分配方式:为用户进程分配的可以是一些...原创 2022-03-10 22:42:26 · 898 阅读 · 0 评论 -
三、操作系统内存管理(5)动态分区分配算法:
3.15动态分区分配算法: 0.知识总览: 1.动态分区分配算法:在动态分区分配方式中,当很多个空闲分区都能满足需求时,应选择那个分区进行分配? 2.首次适应算法: 算法思想:每次都从低地址开始查找,找到第一个能满足大小的空闲分区。 如何实现:空闲分区以地址递增的次序排列。每次分配内存时顺序查找空闲分区链/空闲分区表,找到大小能满足要求的第一个空闲分区。 3.最佳适应算法: 算法思想:优先使用...原创 2022-03-10 16:10:40 · 2003 阅读 · 0 评论 -
三、操作系统内存管理(4)内存空间的分配与回收——连续分配管理方式:
3.14内存空间的分配与回收——连续分配管理方式: 1.连续分配:指为用户进程分配的必须是一个连续的内存空间。 2.单一连续分配方式:内存被分为系统区和用户区。 (1)系统区:通常位于内存的低地址部分,用于存放操作系统相关数据。 (2)用户区:用于存放用户进程相关数据。 (3)内存中只能有一道用户程序,用户程序独占整个用户区空间。 (4)优点:实现简单;无外部碎片;可以采用覆盖技术扩充内存;不一定需要采取内存保护。...原创 2022-03-10 15:27:43 · 899 阅读 · 0 评论 -
三、操作系统内存管理(3)内存空间的扩充——覆盖与交换:
3.13内存空间的扩充——覆盖与交换:1.覆盖技术:解决"程序大小超过物理内存总和"的问题。 (1)覆盖技术的思想:将程序分为多个段(多个模块)。常用的段常驻内存,不常用的段在需要时调入内存。 内存中分为一个"固定区"和若干个"覆盖区"。 常驻内存的段放在"固定区"中,调入后就不再调出(除非运行结束)。 不常用的段放在"覆盖区",需要用到时调入内存,用不到时调出内存。 必须由程序员声明覆盖结构,操作系统完成自动覆盖。 ...原创 2022-03-09 22:12:38 · 1176 阅读 · 0 评论 -
三、操作系统内存管理(2)——内存管理的概念
3.12内存管理的概念: 1.操作系统负责内存空间的分配与回收。 2.操作系统需要提供某种技术从逻辑上对内存空间进行扩充。(虚拟性) 3.操作系统需要提供地址转换功能,负责程序的逻辑地址与物理地址的转换。 三种装入方式: 绝对装入:编译时产生绝对地址。(单道程序阶段) 可重定位装入:装入时将逻辑地址转换为物理地址。(用于早期的多道批处理系统) 动态运行时装入:运行时将逻辑地址转换为...原创 2022-03-09 17:59:20 · 197 阅读 · 0 评论 -
三、操作系统内存管理(1)——内存的基础知识
3.1.1内存的基础知识: 0.知识总览: 1.什么是内存?有何作用? (1)内存是用于存放数据的硬件。程序执行前需要先放到内存中才能被CPU处理。 (2)思考:在多道程序环境下,系统中会有多个程序并发执行,也就是说会有多个程序的数据需要同时放到内存中。那么,如何区分各个程序的数据是放在什么地方呢? (3)方案:给内存的存储单元编地址。 内存地址从0开始,每个地址对应一个存储单元。 内...原创 2022-03-09 10:48:54 · 697 阅读 · 0 评论 -
二、操作系统进程管理(14)——死锁的处理措施
知识总览:1.静态策略:预防死锁 (1)破坏互斥条件。 互斥条件:只有对必须互斥使用的资源的争抢才会导致死锁。 如果把只能互斥使用的资源改造为允许共享使用,则系统不会进入死锁状态。 比如SPOOLing技术把独占设备在逻辑上改造成共享设备。这样在各进程看来,自己对打印机资源的使用请求立即就被接收处理了,不需要再阻塞等待了。 该策略的缺点:不是所有的资源都能改造成可共享使用的资源。并且为了系统安全,很多地方还必须保护这种互...原创 2022-03-07 21:39:22 · 2094 阅读 · 3 评论 -
二、操作系统进程管理(13)——死锁的概念
1.什么是死锁: 各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的现象。2.死锁、饥饿、死循环的区别: (1)饥饿:由于长期得不到想要的资源,某进程无法向前推进的现象。 比如:在短进程优先算法中,若有源源不断的短进程到来,则长进程将一直得不到处理机,从而发生长进程"饥饿"。 (2)死循环:某进程执行过程中一直跳不出某个循环的现象。 程序逻辑bug。 (3)共同点:都是进程无法顺利向前推进的现象。 (4)区别...原创 2022-03-04 14:28:42 · 1179 阅读 · 0 评论 -
二、操作系统进程管理(12)——管程
1.为什么要引入管程: (1)信号量机制存在的问题:编写程序困难、容易出错。 (2)"管程"成分——一种高级同步机制。2.管程的定义和基本特征: (1)管程是一种特殊的软件模块,由这些部分组成:(有点类似于一个类) 局部于管程的共享数据结构说明; 对该数据结构进行操作的一组过程(函数); 对局部于管程的共享数据进行初始值的语句; 管程有一个名字。 (2)管程的基本特征: 局部于管程的数据只能被...原创 2022-03-04 13:25:08 · 1183 阅读 · 0 评论 -
二、操作系统进程管理(11)——经典同步问题(5)哲学家进餐问题
1.哲学家进餐问题 (1)问题描述:一张圆桌上坐着5名哲学家,每两个哲学家之间的桌子上摆一根筷子,桌子的中间是一碗米饭。哲学家们倾注毕生的精力用于思考和进餐,哲学家在思考时,并不影响他人。只有当哲学家饥饿时,才试图拿起左、右两根筷子(一根一根地拿起)。如果筷子已在他人手上,则需等待。饥饿的哲学家只有同时拿起两根筷子才可以开始进餐,当进餐完毕后,放下筷子继续思考。 (2)关系分析。系统中5个哲学家进程,5位哲学家与左右邻居对其中间筷子的访问是互斥关系。 (3)整理思路。这个问题...原创 2022-03-03 15:38:42 · 1209 阅读 · 0 评论 -
二、操作系统进程管理(11)——经典同步问题(4)读者、写者问题
1.读者、写者问题: (1)问题描述:有读者和写者两组并发进程,共享一个文件,当两个或两个以上的读进程同时访问共享数据时不会产生副作用,但若某个写进程和其他进程(读进程/写进程)同时访问共享数据时则可能导致数据不一致的错误。 因此要求:1.允许多个读者可以同时对文件执行读操作; 2.只允许一个写者往文件中写信息; 3.任一写者在完成写操作之前不允许其他读者或写者工作; 4.写者执行写操作前,应让已有的读者和写者全部退出。 (2)关系分析。找出题目中描述的各个进...原创 2022-03-03 12:01:27 · 775 阅读 · 0 评论 -
二、操作系统进程管理(11)——经典同步问题(3)吸烟者问题
1.吸烟者问题: (1)问题分析:假设一个系统有三个抽烟者进程和一个供应者进程。每个抽烟者不停地卷烟并抽掉它,但是要卷起并抽调一支烟,抽烟者需要有三种材料:烟草、纸和胶水。三个抽烟者中,第一、二、三个拥有烟草、纸和胶水。供应者进程无限得提供三种材料,供应者每次将两种材料放桌子上,拥有剩下那种材料的抽烟者卷一根烟并抽调它,并给供应者进程一个信号告诉完成了,供应者就回放另外两种材料在桌子上,这个过程一直重复(让三个抽烟者轮流地抽烟)。 本质上这题也属于”生产者-消费者“问题,更详细的...原创 2022-03-02 20:46:49 · 1202 阅读 · 0 评论 -
二、操作系统进程管理(11)——经典同步问题(2)多生产者多消费者问题
1.多生产者多消费者问题:(1)问题描述:桌子上有一只盘子,每次只能向其中放入一个水果。爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,儿子专等着吃盘子中的橘子,女儿专等着吃盘子中的苹果。只有盘子空时,爸爸或妈妈才可向盘子中放一个水果。仅当盘子中有自己需要的水果时,儿子或女儿可以从盘子中取出水果。用PV操作实现上述过程。(2)问题分析: 互斥关系:(mutex = 1) 对缓冲区(盘子)的访问要互斥地进行。 同步关系(一前一后): 父亲将苹果放入盘子后,女儿才能取苹果。原创 2022-03-02 17:27:41 · 709 阅读 · 0 评论 -
二、操作系统进程管理(11)——经典同步问题(1)生产者消费者问题
1.生产者消费者问题: (1)问题分析:系统中有一组生产者进程和消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区取出一个产品并使用。(产品:可以理解为某种数据) 生产者、消费者共享一个初始为空、大小为n的缓冲区。 只有缓冲区没满时,生产者才能把产品放入缓冲区,否则必须等待。 ——同步关系。缓冲区满时,生产者要等待消费者取走产品。 只有缓冲区不空时,消费者才能从缓冲区取走产品,否则必须等待。 ...原创 2022-03-02 16:06:00 · 833 阅读 · 0 评论 -
二、操作系统进程管理(10)——用信号量机制实现进程互斥、同步、前驱关系
1.信号量机制实现互斥: (1)分析并发进程的关键活动,划定临界区。(如对临界区资源打印机的访问就应放在临界区) (2)设置互斥信号量mutex,初值为1。 (3)在临界区之前执行P(mutex)。 (4)在临界区之后执行V(mutex)。 (5)对不同的临界资源需要设置不同的互斥信号量。2.信号量机制实现同步: (1)进程同步:要让各并发进程按要求有序地推进。 (2)进程同步问题:由于存在异步性,导致了代码执行的先后顺序不可预知,要让...原创 2022-03-02 12:51:33 · 1660 阅读 · 0 评论 -
二、操作系统进程管理(9)——信号量机制
1.信号量机制:用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作,从而很方便实现进程互斥、进程同步。 (1)信号量:一个变量。可以用一个信号量来表示系统中某种资源的数量。(如:系统中有一台打印机,就可以说设置一个初值为1的信号量) (2)原语是一种特殊的程序段,其执行只能一气呵成,不可被中断。原语是由开中断/关中断指令实现的。软件解决方案的主要问题是因为"进入区的各种操作无法一气呵成",因此如果把进入区、退出区的操作都用"原语"实现,使这些操作能"一气呵成"就能避免问题。...原创 2022-03-02 11:53:11 · 676 阅读 · 0 评论 -
二、操作系统进程管理(8)——进程互斥的硬件实现方法:
5.进程互斥的硬件实现方法:(1)中断屏蔽方法: 利用"开/关中断指令"实现。 与原语的实现思想相同,即在某进程开始访问临界区道结束访问位置都不允许被中断,也就不能发生进程切换,因此也不可能发生两个同时访问临界区的情况。 关中断:不允许当前进程被中断,也必然不会发生进程切换。 开中断:直到当前进程访问完临界区,再执行开中断指令,才有可能有别的进程上处理机并访问临界区。 优点:简单高效。 缺点:不适用于多处理机;只适用于操作系统内核进程,不适...原创 2022-03-01 09:16:50 · 436 阅读 · 0 评论 -
二、操作系统进程管理(7)——进程互斥的软件实现方法:
4.进程互斥的软件实现方法: (1)单标志法: int turn = 0; //turn表示当前允许进入临界区的进程号。P0进程: P1进程:while(turn!=0);① while(turn!=1);⑤ //进入区critical section;② critical section;⑥ //临界区turn = 1;③ turn......原创 2022-02-28 11:32:11 · 776 阅读 · 0 评论 -
二、操作系统进程管理(6)——进程同步、互斥问题
1.异步性: 进程具有异步性的特征。 异步性是指各并发执行的进程以各自独立的、不可预知的速度向前推进。操作执行的先后顺序不确定。2.什么是进程同步? 同步亦称直接制约关系,它是指为完成某种任务而建立的两个/多个进程,这些进程因为需要在某些位置上协调它们的工作次序而产生的制约关系。进程间的直接制约关系就是源于它们之间的相互合作。 进程同步讨论的就是怎么解决异步问题。3.什么是进程互斥? (1)进程互斥:当一个进程在访问临界资源时,另一...原创 2022-02-27 23:43:30 · 467 阅读 · 0 评论 -
二、操作系统进程管理(5)——调度算法(2)
(5)时间片轮转调度算法: 算法思想:公平地、轮流地为各个进程服务,让每个进程在一定时间间隔内都可以得到响应。 算法规则:按照各进程到达就绪队列的顺序,轮流让各个进程执行一个时间片。若进程未在一个时间片内执行完,则剥夺处理机,将进程重新放到就绪队列队尾重新排队。 用于作业/进程调度:用于进程调度(只有作业放入内存建立了相应的进程后,才能被分配处理机时间片) 是否可抢占?若进程未能在时间片内运行完,将被强行剥夺处理机使用权,因此时间片轮转调度算法属于抢占式的算法。由时钟装置...原创 2022-02-27 18:26:36 · 463 阅读 · 0 评论 -
二、操作系统进程管理(5)——调度算法(1)
(1)先来先服务(FCFS): 算法思想:主要从“公平”的角度考虑。 算法规则:按照作业/进程到达的先后顺序进行服务。就是等待时间越久的越优先得到服务。 用于作业/进程调度:用于作业调度时,考虑的是哪个作业先到达后备队列;用于进程调度时,考虑的是哪个进程先到达就绪队列。 是否可抢占?非抢占式的算法。 优点:公平、算法实现简单;缺点:对长作业有利,对短作业不利。 不会导致饥饿。 饥饿:某进程/作业长期得不到服务。(2)短作业优先(SJ...原创 2022-02-26 15:42:19 · 471 阅读 · 0 评论 -
二、操作系统进程管理(4)——处理机调度(2)进程调度的时机、切换与过程、方式、评价指标
3.进程调度的时机、切换与过程、方式 (1)进程调度(低级调度)的时机: 什么时候需要进程调度? 主动放弃: 进程正常终止 运行过程中发生异常而终止。 主动阻塞(如等待I/O) 被动放弃: 分给进程的时间片用完 有更紧急的事情需要处理(如I/O中断) ......原创 2022-02-25 16:42:34 · 1099 阅读 · 0 评论 -
二、操作系统进程管理(4)——处理机调度(1)处理机调度的概念、三个层次
1.调度的基本概念:当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定某种规则来决定这些任务的顺序。 处理机调度:从就绪队列中按照一定的算法选择一个进程并将处理及分配给它运行,以实现进程的并发执行。2.调度的三个层次: (1)高级调度/作业调度:按一定的原则从外存上处于后备队列的作业中挑选一个或多个作业,给他们分配内存等必要资源,并建立相应的进程(建立PCB),以使它们获得竞争处理机的权利。 高级调度是辅存(外存)与内存之间的调度。每个作业...原创 2022-02-25 15:03:09 · 517 阅读 · 0 评论 -
二、操作系统进程管理(3)——线程及其实现
1.什么是线程,为什么要引入线程? (1)传统的进程是程序执行流的最小单位。 (2)引入线程后,线程成为了程序执行流的最小单位。 (3)线程:轻量级的进程。它是基本的CPU执行单元,也是程序执行流的最小单位。 (4)引入线程后,进一步提升了系统的并发度。2.引入线程机制后,有什么变化? (1)资源分配、调度: 传统进程机制中,进程是资源分配、调度的基本单位。 引入线程后,进程是资源分配的基本单位,线程是调度的基本单位。...原创 2022-02-24 16:53:19 · 1481 阅读 · 0 评论 -
二、操作系统进程管理(2)——进程及其实现
5.进程的状态与转换: (1)进程的三种基本状态: 运行态 就绪态 阻塞态/等待态 (2)进程的另外两种状态: 创建态 终止态 (3)进程状态的转换: 创建态->就绪态->运行态->结束态 就绪态->运行态:进程被调度。 运行态->就绪态:时间片到,或CPU被其他高优先级的进程抢占。 创建态-...原创 2022-02-23 22:46:22 · 724 阅读 · 0 评论 -
二、操作系统进程管理(1)——进程及其实现
1.进程的定义: 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。2.进程的组成: 进程(进程实体)由程序段、数据段、PCB三部分组成。 进程控制块(PCB):是系统为每个运行的程序配置的数据结构,用来描述进程的各种信息(如程序代码存放位置)。 操作系统通过PCB来管理进程,因此PCB应包含操作系统对其进行管理所需要的各种信息。3.进程的组织方式: 在一个系统中,通常有数千个PCB。为了有效管理,应把这些PCB...原创 2022-02-23 11:21:37 · 687 阅读 · 0 评论 -
一、操作系统概述(3)
6.中断和异常 (1)中断机制的诞生:为了解决各程序只能串行执行。 (2)中断的概念和作用 当中断发生时,CPU立即进入核心态。 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理。 对于不同的中断信号,会进行不同的处理。 用户态->核心态是通过中断实现的。并且中断是唯一途径。 核心态->用户态是通过改变程序状态字(PSW)实现的。 (3)中断的分类 内中......原创 2022-02-22 23:40:57 · 332 阅读 · 0 评论 -
一、操作系统概述(2)
4.OS的发展与分类 上一阶段的缺点是下一阶段的优点。 (1)手工操作阶段(纸带) 主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低。 (2)批处理阶段:引入脱机输入/输出技术(磁带),并监督程序负责控制作业的输入、输出。 单道批处理系统: 主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。 主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/...原创 2022-02-22 20:47:31 · 791 阅读 · 0 评论 -
一、操作系统概述(1)
1.定义: (1)负责管理协调硬件、软件等计算机资源的工作。 (2)为上层应用程序、用户提供简单易用的服务。 (3)OS是系统软件,不是硬件。 2.OS所提供的功能: (1)操作系统作为系统资源管理者,需要提供什么功能?(对上下层) 处理器管理功能、存储管理功能、设备管理功能、文件管理功能、网络与通信管理功能。 (2)为上层用户提供什么功能?(自下而上) 命令接口、程序接口、GUI图形界面。 (3)在纯硬件的基础上实现...原创 2022-02-22 14:32:09 · 595 阅读 · 0 评论