操作系统OS
文章平均质量分 79
操作系统原理
Crayon小鱼干
这个作者很懒,什么都没留下…
展开
-
试比较程序和进程的异同(区别与联系)
这是我们操作系统的作业哈哈哈,总结一下。不同之处:(1)进程具有动态性,是进程实体的执行过程,具有生命周期;而程序是静态的,只是一组有序指令的集合。(2)进程具有并发性,而程序不能并发执行。(3)进程具有独立性,进程实体是一个能独立运行、独立获得资源和接受调度的基本单位,而程序不能作为一个独立的单位参与运行。(4)进程 = 程序 + PCB(5)一个程序可对应多个进程。(6)一个进程...原创 2020-03-15 10:17:25 · 6889 阅读 · 0 评论 -
请描述进程之间上下文切换时系统内核所完成的工作。
这是我们操作系统的作业哈哈哈,自己找资料总结一下,不是网上照搬的哦。觉得可以的点个赞吧,发射爱心 biu~PS:上下文切换是什么意思?上下文切换(Context Switch)有时也称做进程切换或任务切换,是指CPU 从一个进程或线程切换到另一个进程或线程。上下文切换包括保存当前任务的运行环境,恢复将要运行任务的运行环境。当进程被切换时,操作系统内核必须先保护现场,即将处理机状态信息保存在...原创 2020-03-15 10:44:56 · 3517 阅读 · 2 评论 -
为什么分段比分页更容易实现可重入代码的共享和保护?
① 代码共享:因为分段方式中,每个段都是逻辑上的一个整体,比如一个函数、一个子程序等等,并且大小不一。而代码的共享往往就是以函数或子程序为单位的,不管被共享的段有多大,只要为共享代码的进程各设置一个段表项,并让相应段的基址指向同一个内存的位置就可以了,非常容易。而在分页方式中,由于页面大小是固定的,被共享的代码可能在多个页面中,比如两个进程,共享代码有40页,就需要让两个页表中的40项都一一对应...原创 2020-05-04 10:11:58 · 4497 阅读 · 1 评论 -
【OS笔记 1】操作系统的目标和作用、发展过程
操作系统的定义: 操作系统(Operating System, OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。(之前只是一个裸机)一、操作系统的目标和作用 1. 操作系统的目标其主要目标是:方便性、有效性、可扩充性和开放性。其中设计 OS 最重要 的两个目标是:方便性、有效性。有效性的两层含义:① 提高系统资源的利用率(因为以前各种设备都经常处于空闲状态)② 提高系统的吞吐量(合理组织计算机的工作流程,加速程序运行) 2. 操作系统的作用(1) 作为用户与计算机硬件系原创 2020-08-13 20:35:35 · 4320 阅读 · 0 评论 -
【OS笔记 2】有三个程序ABC,它们使用同一个设备进行I/O操作,按ABC的优先次序执行。请分别画出单道程序环境、多道非抢占式和多道抢占式程序环境下,它们运行的时间关系图,并比较它们的总运行时间。
原创 2020-08-13 20:41:18 · 29386 阅读 · 20 评论 -
【OS笔记 3】操作系统的基本特性
在《【OS笔记 1】操作系统的目标和作用、发展过程》中,我们介绍了几种不同类型的操作系统,它们都具有各自不同的特征,比如批处理系统有着高的资源利用率和系统吞吐量,分时系统能获得及时响应、实时系统具有实时特征。但是它们其实还有四个共同的基本特征:并发、共享、虚拟、异步。下面就来具体讲解。 1. 并发正是系统中的程序能并发执行这一特征,才使得OS能有效地提高系统资源利用率和吞吐量。(1)进程的概念进程的定义: 是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一原创 2020-08-15 10:12:39 · 518 阅读 · 0 评论 -
【OS笔记 4】操作系统的组织结构(层次结构、微内核结构)虚拟机的概念
微内核结构可以有效地支持多处理机运行,故非常适用于分布式系统,当前比较流行的、能支持多处理机运行的OS,几乎全部都采用了微内核结构,如 Mach OS、Windows 2000/XP。一、计算机体系结构——冯 · 诺依曼结构数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。二、必备基础知识 1. 中断和陷入(1)陷入(自陷 陷阱 trap) 是由软件产生的原创 2020-08-15 20:49:41 · 9666 阅读 · 2 评论 -
【OS笔记 5】前驱图、顺序执行与并发执行的特征
我们知道,在没有OS的计算机或者单道批处理系统中,程序执行的方式是顺序执行。在多道批处理系统中,多道程序共享系统资源、并发执行,因此引入了进程的概念。 所以,在学习进程之前有必要先对程序的 顺序执行 和 并发执行方式 做简单的了解。一、前驱图的概念所谓前驱后继,其实也就是发生时间的先后关系。作用: 用于描述程序执行的先后顺序。本质: 是一个有向无循环图,可记为 DAG(Directed Acyclic Graph)(重点:有向无循环)结点表示: 一个进程、一个程序段 或 一条语句。有向边表原创 2020-08-16 13:19:44 · 5632 阅读 · 3 评论 -
【OS笔记 6】进程的定义、组成、六大特征
引入进程的原因:上一章讲过,直接让程序并发执行,会发生很多问题,比如不可再现性——同一个程序每次运行的结果都可能不一样,因此,我们在操作系统中引入了进程这一概念,使得每个程序在并发的前提下都能独立地运行。一、进程的定义定义 No.1进程是一个 具有一定独立功能的可并发执行的程序 在一个数据集合上的运行过程 。定义 No.2进程是程序的一次执行。定义 No.3进程是一个程序及其数据在处理机上顺序执行时所发生的的活动。定义 No.4进程是具有独立功能的程序在一个数据集合上的运行过程,它是原创 2020-08-16 15:34:59 · 912 阅读 · 0 评论 -
【OS笔记 7】进程控制块PCB详解
一、PCB是什么PCB是用以记录与进程相关信息的主存区,是进程存在的唯一标志。二、PCB中的信息 1. 进程标识符作用: 用于唯一地标识一个进程• 进程本身:外标识、内部标识• 家族信息:父进程、子进程信息 2. 处理机状态处理机状态信息也称为处理机的上下文(Context),主要是由处理机的各种寄存器中的内容组成的。也就是中断现场的保留区,当进程被切换时,处理机状态信息必须都保存在相应的PCB中,以便该进程在重新执行时能再从断点继续执行。 3. 进程调度信息在OS进行调度时,必须原创 2020-08-16 20:40:12 · 5013 阅读 · 0 评论 -
【OS笔记 8】进程的状态及状态转换
由于多个进程在并发执行时共享系统资源,致使它们在运行过程中呈现间断性的运行规律,所以进程在其生命周期内可能具有多种状态。一、进程的三种基本状态 1. 就绪状态进程已分配到除CPU之外的所有必要资源,只要再获得CPU,便可立即执行。 2. 执行状态进程已获得CPU,正在执行。(多处理机系统中,则有多个进程处于执行状态) 3. 阻塞状态正在执行的进程由于发生某时间(如I/O请求、申请缓冲区失败等)暂时无法继续执行的状态,即进程的执行受到阻塞。二、三种基本状态的转换三、创建状态和终止状态原创 2020-08-17 20:08:57 · 1969 阅读 · 0 评论 -
【OS笔记 9】操作系统内核的功能
一、内核是什么现代操作系统设计采用层次结构,往往将一些与硬件紧密相关的模块或运行频率较高的模块设置在第一层软件中,称为操作系统的内核。二、内核的功能 1. 支撑功能是指内核可以提供给OS的其它众多模块所需要一些基本功能,以便支撑这些模块工作。下面是三种最基本的支撑功能:(1)中断处理此功能是内核最基本的功能,是整个操作系统活动的基础。OS中许多重要的活动无不依赖于中断,比如系统调用、IO操作、进程调度、设备驱动等,(2)时钟管理比如在时间片轮转调度中,每当时间片用完时,便由时钟管理产生一原创 2020-08-18 10:25:03 · 15529 阅读 · 1 评论 -
【OS笔记 10】线程的概念、线程与进程的比较
一、线程的引入为了使多个程序并发执行,提高资源利用率和系统效率,OS引入了进程为了减少程序并发执行时所付出的时空开销,使得并发粒度更细、并发性更好,OS引入了线程二、线程(Threads)的概念1. 线程的定义是进程中的一个实体,是能被系统独立调度和分派的基本单位。2. 线程的组成每个线程都有一个线程控制块TCB。主要组成部分:① 线程ID② 寄存器集合③ 程序计数器④ 栈3. 多线程的优点• 响应度高:只需要阻塞部分线程,提高了对用户的响应• 资源共享:线程默认共享所属进程的原创 2020-08-18 14:16:47 · 394 阅读 · 0 评论 -
【OS笔记 11】三级调度模型——作业调度、进程调度、中级调度(换入/换出)
在多道批处理系统中,一个作业从提交到获得CPU执行,直到作业运行完毕,可能需要经历多级处理机调度。一、处理机调度的层次 1. 高级调度(作业调度 / 长程调度)调度对象: 作业功能: 根据某种算法,将后备队列中的某些作业调入内存,为它们创建进程、分配必要资源,并放入就绪队列。调度间隔为几秒或几分钟,不如进程调度频繁,因此也称为长程(long-term)调度。决定了多道批处理系统中的道数。2. 低级调度(进程调度 / 短程调度)调度对象: 进程(或内核级线程)功能: 根据某种算法,决定就绪原创 2020-08-18 17:49:07 · 3177 阅读 · 0 评论 -
【OS笔记 12】处理机调度算法的目标与评价指标
1. CPU利用率高(批处理系统) 2. 系统吞吐量高(批处理系统)吞吐量是指在单位时间内系统所完成的作业数。 3. 平均周转时间短(批处理系统)一个作业的周转时间是指作业从被提交给系统开始,到作业完成为止,这段时间间隔。它包括四部分:① 作业在外存后备队列中等待作业调度的时间② 进程在就绪队列中等待进程调度的时间③ 进程在CPU上执行的时间④ 进程等待 I/O 操作完成的时间使得平均周转时间最短,不仅能有效地提高系统资源的利用率,而且还可使大多数用户都感到满意。 4. 等待时间短.原创 2020-08-18 19:28:55 · 691 阅读 · 0 评论 -
【OS笔记 13】进程作业调度算法详解
一、先来先服务算法(First Come First Served,FCFS)(1)思想• 从队列中选择最先进入的作业或进程• 非抢占式既可用于作业调度,也可用于进程调度作业调度:从后备队列中选择最先进入的作业,创建PCB,分配资源,加入就绪队列进程调度:从就绪队列中选择最先进入的进程,分配CPU,使之运行(2)优点• 简单、易于实现• 实际中经常把它与其他调度算法结合使用(3)缺点• 平均等待时间长• 短进程需要等待先进入的长进程释放CPU二、短作业优先算法(Shortest原创 2020-08-19 15:06:37 · 1508 阅读 · 1 评论 -
【OS笔记 14】进程同步篇——基本概念
进程同步要解决什么问题?在OS中引入进程后,如果不进行妥善的管理,必然会因为这些进程对系统资源的无序争夺而给系统造成混乱。致使每次处理的结果存在不确定性,即程序运行结果的不可再现性。为保证多个进程能有条不紊地运行,在多道程序系统中,必须引入进程同步机制。一、进程同步机制的主要任务进程同步机制的主要任务,是对多个相关进程在执行次序上的协调,使并发执行的诸进程之间能按照一定的规则(或时序)共享系统资源,并能很好地合作,从而使程序的执行具有可再现性。二、进程之间两种形式的制约关系1. 间接相互制约关原创 2020-08-20 19:07:26 · 1093 阅读 · 0 评论 -
【OS笔记 15】进程同步篇——解决进程互斥问题的软件方法(Peterson算法)
适用于两个进程在临界区、剩余区交替执行。两个进程 P0 和 P1 ,分别用 Pi、Pj( j=1-i )表示。变量 turn 表示哪个进程可以进入临界区。数组 flag[ ] 表示哪个进程想要进入临界区,flag[ i ] = true 表示进程 Pi 已经就绪。附上本人的注释:...原创 2020-08-20 19:29:00 · 828 阅读 · 0 评论 -
【OS笔记 16】进程同步篇——信号量机制
一、信号量(Semaphore)的概念1. 信号量的定义除初始化外,仅能由同步原语对其进行操作的整型变量。2. 信号量的分类整型信号量、记录型信号量、AND型信号量、信号量集按照用途分类,又可分为两大类:二元信号量:用作互斥变量,初值为1一般信号量:用于一般同步,初值为共享资源的初始数量二、整型信号量1. 整型信号量的定义除初始化外,仅能通过两个标准的原子操作 wait(S) 和 siganl(S) 访问的整型变量S。用于表示资源数目。2. 同步原语为什么又叫做P、V操作呢?因为是原创 2020-08-21 10:42:20 · 942 阅读 · 0 评论 -
【OS笔记 17】经典同步问题——生产者—消费者问题(信号量解决方案)
一、问题描述二、问题分析1. 解决对缓冲区资源的互斥访问问题生产者和消费者进程共同使用互斥信号量 mutex ,初始化为1,因为只有一个缓冲区。2. 生产者投放产品的问题生产者进程使用信号量 empty ,初始化为n,因为一开始有n个空闲单元。当 empty = 0 时,生产者进程阻塞。3. 消费者取出产品的问题消费者进程使用信号量 full ,初始化为0,因为一开始一个产品都没有。当 full = 0 时,消费者进程阻塞。三、生产者进程描述四、消费者进程描述...原创 2020-08-21 21:07:32 · 924 阅读 · 0 评论 -
【OS笔记 18】经典同步问题——读者—写者问题(信号量解决方案)
一、问题描述二、问题分析1. 读与写、写与写 是绝对不会同时进行的,读与读可以设置互斥信号量 wmutex,初值为1。2. 记录正在读的进程数目设置整型变量 readcount。3. Reader 进程之间也需要互斥访问 readcount 变量由于 readcount 也是一个可被多个 Reader 进程访问的临界资源,所以也应该为它设置一个互斥信号量 rmutex,初值为1。4. 对于 Reader,检测到 readcount ≠ 0 时,则直接可以进行读操作readcount ≠原创 2020-08-22 17:08:59 · 1546 阅读 · 1 评论 -
【OS笔记 19】经典同步问题——哲学家就餐问题(信号量解决方案)
一、问题描述二、哲学家 i 的进程描述(可能引起死锁)三、死锁分析1. 什么情况下会发生死锁假如五位哲学家同时饥饿,并且都拿起自己左边的筷子,就会使五个 chopstick[i] 信号量变为0,当它们再试图去拿自己右边的筷子时,都会由于无筷子可拿而无限地等待。2. 避免死锁的几种解决办法① 至多同时允许四位哲学家去拿自己左边的筷子,这样就可保证最终至少有一位哲学家能够进餐,并且他用完之后会释放两个筷子,从而使其他哲学家也能够进餐。图解如下:② 仅当哲学家的左、右筷子均可用时,才允许原创 2020-08-22 19:42:25 · 1708 阅读 · 1 评论 -
【OS笔记 20】经典同步问题——理发师睡觉问题(信号量解决方案)
一、问题描述二、顾客进程描述三、理发师进程描述原创 2020-08-23 10:23:48 · 2797 阅读 · 6 评论 -
【OS笔记 21】进程同步篇——管程机制(Monitors)
虽然信号量机制是一种既方便、又有效的进程同步机制,但每个临界资源都要自备同步操作 wait(s) 和 signal(s) ,这就使大量的同步操作分散在各个进程中,不仅给系统的管理带来了麻烦,还会因为同步操作的使用不当而导致系统死锁。为了解决这些问题,便诞生了一种新的同步工具——管程。信号量机制的三点不足:• 临界区、进入区和退出区都由用户编写• 信号量操作原语分散在各程序代码中,由进程来执行,系统无法有效控制、管理• wait 和 signal 操作的错误使用,编译程序和操作系统都无法发现、纠正,可原创 2020-08-23 11:28:42 · 1234 阅读 · 0 评论 -
【OS笔记 22】进程与管程的区别
创作日志: 虽然不知道这俩有啥好比的,不就名字有点像呗,但是既然老师要求了,就来分析一下叭。(1)动态性: 进程具有动态性,由“创建”而诞生,由“撤销”而消亡,而管程是操作系统中的一个资源管理模块,是静态的(一直存在的),供进程调用。(2)作用不同: 设置进程的目的是实现系统的并发性,而管程的设置则是解决共享资源的互斥使用问题。(3)并发性: 进程之间可以并发执行,而管程则不能与其调用者并发执行(其调用者就是进程)。(4)主动被动性: 进程为主动工作方式,而管程为被动工作方式。(5)数据结构不同原创 2020-08-23 11:53:59 · 2250 阅读 · 0 评论 -
【OS笔记 23】进程通信
一、进程通信是什么进程通信是指 进程之间的信息交换。协作进程需要一种进程间通信机制(Interprocess Communicatio,IPC)来允许进程相互交互数据与信息。二、进程通信的类型1. 共享存储器系统(Shared-Memory System)在共享存储器系统中,相互通信的进程共享某些数据结构或存储区,然后通过这些空间进行通信。据此,可以将其分为两种类型:(1)共享数据结构这种通信方式要求诸进程公用某些数据结构来实现信息交换,非常经典的例子就是生产者—消费者问题中的公共有界缓冲区原创 2020-08-24 20:37:29 · 490 阅读 · 0 评论 -
【OS笔记 25】死锁的必要条件
一、死锁的定义如果一组进程中的每一个进程都在等待只能由该组进程中的其它进程引发的事件,那么该组进程是死锁的。二、产生死锁的必要条件PS: 必要条件:发生了死锁的话,这四个条件一定满足;但是这四个条件满足,不一定发生死锁。1. 互斥条件也就是多个进程必须对临界资源互斥访问,临界资源不能被多个进程一起使用,只能一个一个用。2. 请求和保持(占有并等待)条件“请求”指请求新资源,“保持”指已经有了至少一个资源,但是该进程对已有的资源保持占有,不释放。该组进程中的每一个进程已经保持(正在占用)了原创 2020-09-08 21:28:44 · 310 阅读 · 0 评论 -
【OS笔记 26】死锁之资源分配图
1. 两种结点:进程结点和资源结点在资源分配图中,用圆形表示进程 Pi ,矩形表示资源类型 Rj。(PS:同一种资源类型可能有多个资源,几个资源矩形里就几个圆点) 2. 两种边:申请边和分配边申请边:由进程指向资源分配边:由资源指向进程注:一条边只能代表一个进程申请一个资源实例,或者一个资源实例被一个进程占有。如下边的右图,Rj 中还有两个资源是空闲的。 3. 资源分配图随进程运行的变化当进程申请资源类型的一个实例时,就在资源分配图中加入一条申请边当该申请可以得到满足时,申请边就转换成原创 2020-09-09 09:41:38 · 3222 阅读 · 0 评论 -
【OS笔记 27】处理死锁的四种方法——概述
一、预防死锁通过设置某些限制条件,去破坏死锁的四个必要条件中的一个或几个来预防产生死锁。(死锁的必要条件知不道的见【OS笔记 25】)为什么这样就一定不会发生死锁了呢?可以用数学逻辑推理来证明:我们设 A = “发生死锁” ,B = “死锁(A)的四个必要条件”因为B是A的必要条件,所以有 A -> B,即A发生,B一定发生由逆反律知:非B -> 非A ,即B不成立,则A不成立二、避免死锁在资源的动态分配过程中,用某种方法防止系统进入不安全的状态(即可能发生死锁的状态),从而避免原创 2020-09-09 10:20:33 · 1692 阅读 · 0 评论 -
【OS笔记 28】处理死锁的四种方法——预防死锁(破坏四个必要条件之一)
前面讲过预防死锁是通过破坏死锁的四个必要条件,所以就有四个预防死锁的方法吗?错!只有三种,因为互斥条件是必须的,不仅不能改变,还应该加以保证。因此只能破坏后三个条件。一、破坏请求和保持条件• 方法一 —— 破坏“请求”条件(预先静态分配法)每个进程执行之前,必须一次性地申请其在整个运行期间所需的全部资源,全部申请到了才能运行。这样它在整个运行过程中便不会再提出资源请求,从而破坏了“请求”条件。 缺点:① 资源利用率很低:有些资源可能在最后才会用到,它却一直占用了那么久② 进程可能出现饥饿现象:可原创 2020-09-09 16:12:18 · 13757 阅读 · 3 评论 -
【OS笔记 29】处理死锁的四种方法——避免死锁(资源分配图算法与银行家算法)
一、系统安全状态系统处于安全状态时,就可避免死锁;处于不安全状态时,可能发生死锁。1. 安全状态与不安全状态所谓安全状态,是指系统此时能找到一个进程的序列<P1,P2,P3…Pn>,只要按照此顺序为其分配资源,就能使每个进程都能顺利完成。...原创 2020-09-11 10:35:26 · 6429 阅读 · 2 评论 -
【OS笔记 30】处理死锁的四种方法——死锁的检测与解除
创作日志: 我的教材是汤小丹的计算机操作系统第四版,上面只讲了终止进程这一种方法,我在网上找资源抢占方式的讲解(包括回滚等),也不是很清楚,于是我去请教了我们的操作系统老师,现在理解了。一、终止进程的方法(1)终止所有死锁进程是最简单的方法,终止所有死锁进程后,死锁自然就解除了。缺点: 代价可能会很大:有些快要结束的进程一旦被终止,可谓是“功亏一篑”。(2)逐个终止进程,直至死锁解除比...原创 2020-04-27 13:32:02 · 2770 阅读 · 0 评论 -
【OS笔记 31】存储器的多层结构解析
从这一篇开始,讲的就是存储器管理了。一、计算机系统存储层次图一些特点:从下到上:存取速度越来越快,因此价格越来越贵,所配置的存储容量越来越小(买不起太多呗)二、主存储器、寄存器与高速缓存首先要了解这一部分 1. 主存储器(主存 / 内存)(1)作用:保存进程运行时的程序和数据。(2)速度:对主存储器的访问速度远低于CPU执行指令的速度。(这会有什么影响呢?试想,CPU本来 1ms 就可以计算完 a+b 的结果,但是去主存取 a 和 b 的值就用了 5ms,是不是很浪费 CPU 的时原创 2020-09-11 11:45:00 · 762 阅读 · 2 评论