
操作系统
文章平均质量分 87
操作系统学习记录
叮!菜鸡
就是喜欢
展开
-
从思维导图学习操作系统(三)
第二章第二节大纲一览小结拆分原创 2020-03-26 11:52:49 · 243 阅读 · 0 评论 -
从思维导图学习操作系统(二)
第二章是进程控制,绝对是重点,包含的知识也很多,所以我打算一小节一小节的做大纲一览小结拆分:这真的是太多了,如果有想要的朋友请留言我可以发给你。...原创 2020-03-24 16:05:42 · 196 阅读 · 0 评论 -
从思维导图学习操作系统(一)
我已经把操作系统复习完了,现在把每张的知识做成思维导图,我已经尽力做详细了但是一些小知识还是得去看,如果大家有兴趣也可以查看我之前的博客,我也是按照这个博客结合王道的PPT做的这个思维导图,如果大家想要的话可以留言我会给大家大纲一览:小结拆分:知识全览...原创 2020-03-22 15:19:22 · 310 阅读 · 1 评论 -
操作系统(三十七)基本分页存储的概念
3.6基本分页存储的概念介绍完连续分配管理方式后我们再来介绍非连续分配管理方式,非连续管理方式主要有三种:基本分页存储管理、基本分段存储管理、段页式存储管理。这节主要介绍分页存储管理方式。目录3.6基本分页存储的概念3.6.1 分页存储3.6.2 页表3.6.3 页表的大小3.6.4 通过页表实现逻辑地址与物理地址的转换3.6.1 分页存储将内存空间分为...原创 2020-03-14 19:41:00 · 1766 阅读 · 0 评论 -
操作系统(三十六)动态分区分配算法
3.5 动态分区分配算法 上节讲述了连续分区分配方式中有动态分区分配的方式,如果在动态分区分配算法中有许多空闲分区都满足需求的时候,那该如何分配空间呢,今天来介绍四种分配方法解决这个问题。目录3.5 动态分区分配算法3.5.1 首次适应算法3.5.2 最佳适应算法3.5.3 最坏适应算法3.5.4 邻近适应算法3.5.5 四种方法比较3.5.1 首次适应...原创 2020-03-14 15:05:22 · 1464 阅读 · 0 评论 -
操作系统(三十五)连续分配管理方式
3.4 连续分配管理方式 连续分配管理是指为用户进程分配的内存空间是连续的一片空间目录3.4 连续分配管理方式3.4.1 单一连续分配3.4.2 固定分区分配3.4.3 动态分区分配3.4.4 小结3.4.1 单一连续分配 在单一连续分配方式中,内存被分为系统区和用户区。系统区通常位于内存的低地址部分,用于存放操作系统相关数据;用户区用于存放用户进程相关数...原创 2020-03-13 20:16:21 · 566 阅读 · 0 评论 -
操作系统(三十四)覆盖和交换
3.3 覆盖和交换 在上一节中我们提到操作系统在内存管理方面的作用,其中有一个作用是内存空间的扩展,实现这一功能的就是覆盖和交换技术。3.3.1 覆盖早期的计算机内存很小,经常会出现内存大小不够的情况。后来人们引入了覆盖技术,用来解决“程序大小超过物理内存总和”的问题。 覆盖的思想:将程序分为多个段(多个模块)。常用的段常驻内存,不常用的段在需要时调入内存。内存中分为一个“...原创 2020-03-13 15:27:28 · 2373 阅读 · 0 评论 -
操作系统(三十三)内存管理
3.2 内存管理 作为计算机资源的管理者,操作系统在内存管理方面有着很多的工作3.2.1 内存空间的分配和回收 内存空间的分配和回收主要解决的问题是内存空间那些区域需要被分配以及如何分配,还有进程结束后的空间是如何释放以及怎么释放的问题(后期会有介绍)3.2.2 内存空间的拓展 之前在讲操作系统的虚拟性的时候提到过,由于内存资源价格昂贵所以人们会使用一些技术将内存在逻辑上...原创 2020-03-13 14:32:34 · 240 阅读 · 0 评论 -
操作系统(三十二)内存的基础常识
3.1 内存的基础常识目录3.1 内存的基础常识3.1.1 计算机的多级存储结构3.1.2 程序的装入和链接3.1.1 计算机的多级存储结构 对于计算机的存储结构而言一般可以分为三层:最高层为 CPU 寄存器,中间为主存(内存),最底层是辅存,如下图所示 内存:可以用来存储数据的装置,内存的主要作用是缓和高速CPU与低速外存之间的速度矛盾。为了可以将存储在内存上...原创 2020-03-12 20:07:24 · 306 阅读 · 0 评论 -
操作系统(三十一)死锁的检测和解除
2.4.4 死锁的检测和解除目录2.4.4 死锁的检测和解除2.4.4.1 死锁的检测2.4.4.2 死锁的解除2.4.4.1 死锁的检测死锁检测算法:用于检测系统状态,以确定系统中是否发生了死锁。 对于死锁检测算法有一种专门的数据结构称为资源分配图: 一般用矩形表示资源结点,矩形中的小圆代表该类资源的数量。死锁检测算法: (1) 在资源...原创 2020-03-09 19:30:47 · 1226 阅读 · 0 评论 -
操作系统(三十)避免死锁
2.4.3 避免死锁 操作系统的状态可以分为安全状态以及不安全状态,让操作系统始终保持一个安全状态就能避免死锁。所谓安全状态,是指系统能按某种进程顺序(P1,P2,…,Pn)(称〈P1,P2,…,Pn〉序列为安全序列),来为每个进程 Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利地完成。如果系统无法找到这样一个安全序列,则称系统处于不安全状态。当然安全序列可以有多个...原创 2020-03-09 19:15:50 · 818 阅读 · 0 评论 -
操作系统(二十九)预防死锁
2.4.2 预防死锁 预防死锁的就破坏死锁产生的四个条件中的任意一个条件。目录2.4.2 预防死锁2.4.2.1 破坏互斥条件2.4.2.2 破坏不剥夺条件2.4.2.3破坏请求和保持条件2.4.2.4 破坏循环等待条件2.4.2.1 破坏互斥条件 互斥条件:只有对互斥资源的争抢才有可能产生死锁。如果把只能互斥使用的资源改造为允许共享使用,则系统...原创 2020-03-09 15:56:40 · 271 阅读 · 0 评论 -
操作系统(二十八)死锁的概念
2.4.1 死锁的概念在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象,就是“死锁”。通俗一点就是我有一个资源你也有一个资源,但我们还想要对方手里的资源,可对方还不放手,于是我们就都等对方放手,导致进程没办法推进,这就造成了死锁。2.4.1.1 死锁、饥饿、死循环之前我们接触过饥饿,还有在程序中出现的死循环,他们都会使进程...原创 2020-03-09 14:57:04 · 231 阅读 · 0 评论 -
操作系统(二十七)管程
2.3.10 管程 经过前几节的学习,大家一定会发现P、V操作的一些问题,最大的问题就是书写较为困难,如果再写程序的时候只是想着怎么实现进程同步问题的话就太浪费时间了,于是我们就引入了管程。 管程的定义:代表共享资源的数据结构,以及由对该共享数据结构实施操作的一组过程所组成的资源管理程序,共同构成了一个操作系统的资源管理模块,我们称之为管程。 管程的基本特征:局部于管程的数...原创 2020-03-09 13:47:01 · 186 阅读 · 0 评论 -
操作系统(二十六)读者写者问题
2.3.9 读者写者问题 读者写者问题是十分经典的进程同步的问题,问题描述如下:读进程与写进程共享文件,但是写进程必须与其他进程互斥发生。根据以上的题目要求我们可以得出一些互斥关系:写进程与写进程互斥,读进程与写进程互斥我们可以设置一个互斥信号量rw来实现对互斥信号的共享访问semaphore rw=1; //用于实现对共享文件的互斥访问writer (){ w...原创 2020-03-09 10:58:34 · 606 阅读 · 0 评论 -
操作系统(二十五)吸烟者问题-单生产者多消费者问题
2.3.8 吸烟者问题-单生产者多消费者问题假设一个系统有三个抽烟者进程和一个供应者进程。每个抽烟者不停地卷烟并抽掉它,但是要卷起并抽掉一支烟,抽烟者需要有三种材料:烟草、纸和胶水。三个抽烟者中,第一个拥有烟草、第二个拥有纸、第三个拥有胶水。供应者进程无限地ᨀ供三种材料,供应者每次将两种材料放桌子上,拥有剩下那种材料的抽烟者卷一根烟并抽掉它,并给供应者进程一个信号告诉完成了,供应者就会放另...原创 2020-03-08 14:33:19 · 1069 阅读 · 0 评论 -
操作系统(二十四)多生产者多消费者问题
2.3.7 多生产者多消费者问题 桌子上有一只盘子,每次只能向其中放入一个水果。爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,儿子专等着吃盘子中的橘子,女儿专等着吃盘子中的苹果。只有盘子空时,爸爸或妈妈才可向盘子中放一个水果。仅当盘子中有自己需要的水果时,儿子或女儿可以从盘子中取出水果。用PV操作实现上述过程。 不同于一个(类)生产者一个(类)消费者问题,本题目中含有多个生产者多个消费者...原创 2020-03-07 19:09:44 · 1038 阅读 · 2 评论 -
操作系统(二十三)生产者消费者问题
2.3.6 生产者消费者问题 生产者消费者问题(The proceducer-consumer problem)是一个经典的进程同步的问题,问题是这样描述的:在操作系统中有一组生产者进程一组消费者进程,生产者每次会生产一件产品并放入缓冲区,消费者每次从缓冲区取出一件产品并使用。生产者、消费者共享一个初始为空、大小为n的缓冲区。只有缓冲区没满时,生产者才能把产品放入缓冲区,否则必须等待。只有缓...原创 2020-03-07 14:29:47 · 1453 阅读 · 0 评论 -
操作系统(二十二)用信号量机制实现进程互斥、同步、前驱关系
2.3.5 用信号量机制实现进程互斥、同步、前驱关系目录2.3.5 用信号量机制实现进程互斥、同步、前驱关系2.3.5.1用信号量机制实现进程互斥2.3.5.2用信号量机制实现进程同步2.3.5.3信号量机制实现前驱关系2.3.5.1用信号量机制实现进程互斥 由之前的学习我们知道进程互斥就是在同一时间访问临界资源的进程只能有一个。并且P操作是申请资源并上锁的原...原创 2020-03-07 10:50:46 · 4078 阅读 · 0 评论 -
操作系统(二十一)信号量机制
2.3.4 信号量机制 在前两节中我们分别学习了用软件方式以及硬件方式实现互斥访问,但是他们或多或少的存在一些问题,1965年荷兰的一名学者迪杰斯特拉(是的,就是那个男人)提出了信号量机制,有效的解决了进程互斥与进程同步问题。目录2.3.4 信号量机制2.3.4.1 信号量机制概述2.3.4.2 整型信号量2.3.4.3 记录型信号量2.3.4.1 信号量机制概述...原创 2020-03-06 19:48:26 · 689 阅读 · 0 评论 -
操作系统(二十)进程互斥的硬件实现方法
2.3.3进程互斥的硬件实现方法目录2.3.3进程互斥的硬件实现方法2.3.3.1 中断屏蔽2.3.3.2TestAndSet指令(TSL指令)2.3.3.3 SWAP指令2.3.3.1 中断屏蔽 在本系列的第五节曾经提到过中断的概念,并说中断是操作系统夺回CPU的唯一方式,在这里中断屏蔽的想法与原语原子性保证的想法是一致的,即将临界区放在开中断与关中断之间,这样在...原创 2020-03-06 18:54:31 · 585 阅读 · 0 评论 -
操作系统(十九)进程互斥的软件实现方法
2.3.2 进程互斥的软件实现方法目录2.3.2 进程互斥的软件实现方法2.3.2.1 单标志法2.3.2.2 双标志先检查法2.3.2.3 双标志后检查法2.3.2.4 Peterson法2.3.2.1 单标志法两个进程在访问完临界区后会把使用临界区的权限转交给另一个进程。也就是说每个进程进入临界区的权限只能被另一个进程赋予int turn = 0; ...原创 2020-03-06 17:22:41 · 1011 阅读 · 0 评论 -
操作系统(十八)进程同步与进程互斥
2.3.1 进程同步与进程互斥目录2.3.1 进程同步与进程互斥2.3.1.1 进程同步2.3.1.2 进程互斥 在之前我们提到过,进程有异步性的特征,所谓异步性就是并发执行的进程以各自独立的、不可预知的速度向前推进,这个时候就不可避免的出现有些请求由于资源不足等原因而不能完成,所以为了使进程可以顺利的进行,操作系统引入了进程同步机制。2.3.1.1 进程同步举一...原创 2020-03-06 14:39:29 · 348 阅读 · 0 评论 -
操作系统(十七)调度算法(二)
2.2.5 调度算法(二) 在上一节中我们讲了三种调度算法,分别是先来先服务算法,短作业优先算法,高相应比优先算法,今天我们再来学习三种算法,分别是时间片轮转算法,优先级调度算法,多级反馈队列算法。目录2.2.5 调度算法(二) 2.2.5.1 时间片轮转算法(RR, Round-Robin)2.2.5.2 优先级调度算法2.2.5.3 多级反馈调度算法...原创 2020-03-05 15:29:10 · 1279 阅读 · 0 评论 -
操作系统(十六)调度算法(一)
2.2.4 调度算法2.2.4.1 先来先服务(FCFS, FirstCome First Serve)顾名思义。按照“公平”原则,兑先来的进程/作业进行调度。2.2.4.2 短作业/进程优先(SJ/PF, ShortestJob/Progress First)最短的作业/进程优先得到服务(所谓“最短”,是指要求服务时间最短) 下面我们用一个实例来演示一下两种调度...原创 2020-03-04 19:04:21 · 2347 阅读 · 0 评论 -
操作系统(十五)调度算法的评价指标
2.2.3调度算法的评价指标 本节我们会简要的了解一些评价指标及其计算方法。CPU利用率系统吞吐量周转时间等待时间响应时间CPU利用率CPU利用率:指CPU “忙碌”的时间占总时间的比例。即利用率=忙碌时间/处理作业工作总时间。系统吞吐量系统吞吐量:单位时间内完成作业的数量。即系统吞吐量=共完成了多少作业/总共花了多少时间。周转时间 周...原创 2020-03-04 15:26:07 · 1000 阅读 · 0 评论 -
操作系统(十四)进程调度的时机、调度方式
2.2.2 进程调度的时机、调度方式2.2.2.1 进程调度的时机 进程调度(低级调度)就是按照某种算法从就绪队列中选择一个进程为其分配处理机。需要进程调度的时机有以下两种情况:当前进程主动放弃处理机,当前进程被动放弃处理机。当前进程主动放弃处理机:进程正常终止;运行过程中发生异常而终止;进程主动请求阻塞(如 等待I/O) 当前进程被动放弃处理机:分给进程的时间片用完、有更...原创 2020-03-04 15:02:57 · 4084 阅读 · 0 评论 -
操作系统(十三)处理机调度的概念、层次
2.2.1 处理机调度的概念、层次目录2.2.1 处理机调度的概念、层次2.2.1.1 处理机调度的概念2.2.1.2 处理机调度的三个层次2.2.1.3 小结2.2.1.1 处理机调度的概念 一般来说在多道程序系统中,作业数往往是多于处理机个数的,为了合理分配处理机资源这就需要确定某种规则来决定处理这些在就绪队列等待的任务的顺序,这就是“调度”研究的问题。2.2...原创 2020-03-04 12:03:20 · 660 阅读 · 0 评论 -
操作系统(十二)线程的实现方式、多线程模型
2.1.6 线程的实现方式、多线程模型目录2.1.6 线程的实现方式、多线程模型2.1.6.1 线程的实现方式2.1.6.2 多线程模型2.1.6.1 线程的实现方式 线程已在许多系统中实现,但各系统的实现方式并不完全相同。在有的系统中,特别是一些数据库管理系统,所实现的是用户级线程;而另一些系统所实现的是内核级线程; 还有一些系统如 Solaris 操作系统,则同时实现...原创 2020-03-04 10:42:29 · 1330 阅读 · 0 评论 -
操作系统(十一)线程的概念和特点
2.1.5 线程的概念和特点 前面我们介绍了进程,并说到进程是程序的一次执行,是调度的基本单位。那么大家来想一下这么一个场景,我打开了QQ.exe,QQ进程便会运行,在这次运行里我想跟同学视频聊天、共享文件、文字聊天,那么这三个功能对应的程序便会运行即QQ进程下会多出三个子进程,那么这个三个子进程都会被分配一定的资源,如果其中两个进程所需要的资源是重复的,一个进程要访问另一进程的资源就需要进...原创 2020-03-03 17:30:19 · 2600 阅读 · 0 评论 -
操作系统(十)进程通信
2.1.4 进程通信 顾名思义,进程通信就是指进程之间的信息交换。进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。同时为了保证安全,一个进程不能随意的访问另一进程的资源,但有时进程通信又是必要的,所以操作系统提供了共享存储、消息传递、管道通信三种方式来实现进程之间的通信。2.1.4.1 共享存储 在共享存储这一形式中,两个进程对于某一共享内存的访...原创 2020-03-03 11:00:38 · 272 阅读 · 0 评论 -
操作系统(九)进程控制
2.1.3 进程控制目录2.1.3 进程控制2.1.3.1 基本概念2.1.3.2 进程创建原语2.1.3.3 进程终止原语2.1.3.4 进程的阻塞与唤醒2.1.3.5 进程的切换2.1.3.6 小结2.1.3.1 基本概念 在书中,进程控制的定义是这样的:进程控制是进程管理中最基本的功能。它用于创建一个新进程,终止一个已完成的进程,或终止一个因...原创 2020-03-02 19:31:38 · 768 阅读 · 0 评论 -
操作系统(八)进程状态的转换以及进程组织方式
2.1.2 进程状态的转换以及进程组织方式目录2.1.2 进程状态的转换以及进程组织方式2.1.2.1 进程的状态2.1.2.2 进程的组织方式2.1.2.1 进程的状态 因为进程的执行在时间上是不连贯的,所以进程就会有多种状态,其中就绪态、执行态、阻塞态是三种最基本的状态。除此之外进程还可能会有创建态以及终止态。(1)创建态:在进程被创建时他的状态是创建态,这个时候...原创 2020-03-02 16:43:03 · 674 阅读 · 0 评论 -
操作系统(七)进程的概念、组成、特征
2.1.1 进程的概念、组成、特征 2.1.1.1 进程的概念 在第一章的是时候我们曾经提到过进程的概念,要想理解进程,首先要了解程序的概念。 程序:静态的,存放在磁盘里的可执行文件,是一系列指令的集合。如QQ.exe等 进程(progress):动态的,是程序的一次执行过程,一个程序可以产生多个进程。 既然一个程序可以产生多个进程,那么操作系统是如何区分这些看似相同...原创 2020-03-02 14:22:31 · 1925 阅读 · 0 评论 -
操作系统(六)系统调用
1.6 系统调用在前几篇文章中曾经提到过系统调用程序接口,并提到系统调用使应用程序请求操作系统服务的唯一方式。下面再来更进一步地学习一下。目录1.6 系统调用1.6.1 系统调用1.6.2 系统调用的具体使用场景1.6.3 系统调用的过程1.6.1 系统调用系统调用:是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数...原创 2020-03-01 14:58:04 · 676 阅读 · 0 评论 -
操作系统(五)中断和异常
1.5 中断和异常 在上节内核态与用户态的转换过程中曾经提到过,操作系统会响应中断信号强制夺回CPU使用权,使用户态转换为内核态。“中断”是操作系统夺回CPU使用权的唯一方式,如果没有“中断”机制,那么一旦应用程序上CPU运行,CPU就会一直运行这个应用程序,其他程序就没有办法再使用CPU,这样的话就不存在并发机制了。一般来说,中断分为两种情况即内中断和外中断。1.5.1 内中断...原创 2020-03-01 14:24:25 · 1115 阅读 · 0 评论 -
操作系统(四)操作系统的运行机制
1.4 操作系统的运行机制目录1.4 操作系统的运行机制1.4.1 内核程序&应用程序1.4.2 特权指令&非特权指令1.4.3 内核态&用户态1.4.4 操作系统的内核1.4.5 小结 操作系统其实也是一种程序,程序的执行过程也就是CPU执行一行行机器指令的过程。区别于一般程序员开发的应用程序,实现操作系统的程序就是内核程序。1.4....原创 2020-03-01 11:36:13 · 2182 阅读 · 0 评论 -
操作系统(三)操作系统的发展和分类
1.3 操作系统的发展和分类目录1.3 操作系统的发展和分类1.3.1 人工手动操作系统1.3.2批处理阶段1.3.3 分时操作系统1.3.4 实时操作系统先对要讲的各个阶段有个大体的认识,要注意各自的优点以及不足,上一个阶段的不足一定是下一个阶段发展的动力。1.3.1 人工手动操作系统 最开始的计算机是采用纸带的形式读取01代码,效率十分的低下。而且在...原创 2020-02-29 20:11:50 · 1093 阅读 · 1 评论 -
操作系统(二)操作系统的四个特征
1.2操作系统的四个特征目录1.2操作系统的四个特征1.2.1 并发1.2.2 共享1.2.3虚拟1.2.4异步1.2.5小结操作系统共有四个基本的特征:并发、共享、虚拟、异步。其中并发和共享是操作系统基本的特征,二者互为存在条件。1.2.1 并发 提到并发就不得不提并行,这二者是一对既相似又有区别的概念,下面就来分别介绍一下二者。 ...原创 2020-02-29 19:04:04 · 2020 阅读 · 0 评论 -
操作系统(一)操作系统的概念、功能
因为考试的需要所以得从头来一遍操作系统,由于的影响推迟了开学时间而且没有带书回家,而又懒得写字,所以打算以这种形式记录一下操作系统的学习(参考王道视频讲解以及汤子瀛老师的操作系统)。目录1.1 操作系统的概念、功能 1.1.1 操作系统作为系统资源管理者的功能1.1.2 操作系统向上层提供服务1.1.3操作系统是最接近硬件的软件1.1 ...原创 2020-02-29 16:08:33 · 1034 阅读 · 0 评论