![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 92
系统整理OS的知识,详细解释每个概念,解答你的疑问,有问题欢迎评论区留言!
专栏持续更新中...
李子树_
学--讲--写
展开
-
存储器管理概述----功能、管理对象、基本模式
存储器一直都是计算机系统的重要组成部分。近年来,随着技术的发展,虽然存储器的容量一直在不断扩大,但是仍不能满足现代软件发展的需要。存储器仍然是一种宝贵而稀缺的资源。如果有效的来管理存储器,不仅直接影响到存储器的利用率,而且对系统的性能也有重大影响。本文对存储器管理的功能,管理对象,基本模式进行讨论,并介绍了虚拟存储器的概念...原创 2020-02-02 15:31:48 · 7293 阅读 · 2 评论 -
Java模拟实现银行家算法
银行家算法是我们的老朋友迪杰斯特拉为T.H.E系统设计的一种避免死锁产生的算法。该算法最初是为银行系统设计的,为了保证银行在发放现金贷款时,不会发生不能满足所有客户需要的情况。银行家算法是一个非常经典的算法,也是死锁避免算法中的最具代表性的算法,其思想是非常值得我们学习的。死锁处理的四种方法:预防死锁、避免死锁、检测死锁、解除死锁。其中预防死锁最为复杂,需要为OS设定各种定律、准则,较难实现,且较为影响系统的性能,最主要的就是并发效率下降;避免死锁可以让OS不必遵循特定的准则,因此给OS施加的限制较小...原创 2020-02-01 21:36:02 · 6451 阅读 · 5 评论 -
避免死锁-----银行家算法详解
银行家算法是我们的老朋友迪杰斯特拉为T.H.E系统设计的一种避免死锁产生的算法。该算法最初是为银行系统设计的,为了保证银行在发放现金贷款时,不会发生不能满足所有客户需要的情况。银行家算法是一个非常经典的算法,也是死锁避免算法中的最具代表性的算法,其思想是非常值得我们学习的。死锁处理的四种方法:预防死锁、避免死锁、检测死锁、解除死锁。其中预防死锁最为复杂,需要为OS设定各种定律、准则,较难实现,且较为影响系统的性能,最主要的就是并发效率下降;避免死锁可以让OS不必遵循特定的准则,因此给OS施加的限制较小...原创 2020-02-01 12:09:02 · 19058 阅读 · 1 评论 -
操作系统中不安全状态为何并非一定转为死锁?
在学习避免死锁、银行家算法时,对于安全状态一定不会产生死锁,不安全状态也并非必然转为死锁,不止你是否会疑惑为何处于不安全状态下,不是必然会发生死锁?原创 2020-01-31 12:26:41 · 27996 阅读 · 19 评论 -
死锁的预防、检测与解除
本文主要讨论死锁的预防,如何检测死锁和解除死锁。预防死锁是通过破坏产生死锁的四个必要条件中的一个或几个,以避免发生死锁。由于互斥条件是临界资源所必须的,不仅不能改变,还应加以保证,因此主要是破坏产生死锁的后三个条件,即请求和保持、不可抢占与循环等待。系统需要配有死锁检测算法和死锁解除算法,可以保证系统中发生死锁也不会无限的等待下去,即死锁定义中所说的外力,可以打破死锁的僵局原创 2020-01-30 18:23:35 · 4620 阅读 · 3 评论 -
死锁概述---定义、危害、必要条件和处理方法
死锁是一组进程在执行的过程中,因为竞争资源或者推进顺序不当导致的一种情况,在这种情况下,每个进程都在持有着自己已经抢占的资源,又同时等待别人释放资源,最终这一组进程都一直僵持谁也无法运行。本文,我们会对死锁的定义、危害,产生死锁的四个必要条件,和处理思索的四种方法来进行细致的讨论,让死锁对你毫无保留。原创 2020-01-29 16:17:46 · 3090 阅读 · 2 评论 -
处理机调度算法详解----进程调度
进程调度调度的对象是进程,其主要任务是根据某种算法,选取处于就绪队列中的进程,并由分派程序将处理机分配给被选中的进程。进程调度是一种最基本的调度,在多道批处理、分时和实时等OS中,都必须要配置这级调度。其执行周期最短,也就是执行频率最高,分时系统中10-100ms便要进行一次进程调度,因此也称为短程调度。因为执行频率高,进程调度算法不宜过于复杂(太过复杂会占用太多CPU的时间)下面我们一起来看下进程调度的几种调度算法。轮转调度算法、多队列调度算法、多级反馈调度算法...原创 2020-01-25 17:43:17 · 2052 阅读 · 1 评论 -
处理机调度算法详解----作业调度
作业调度调度的对象是作业,作业在概念上和程序还是有些区别的,作业是处于外存中的,也就是在后备队列上的,作业调度的任务就是从外存的后备对列选取某些作业调入内存,并为他们创建进程、分配必要的资源,也只有作业被调入到内存中,并为之分配资源,才能完成进程的创建工作,OS才可以进行其他的调度。...原创 2020-01-24 18:22:35 · 4626 阅读 · 2 评论 -
OS处理机调度算法----理论篇
在传统的操作系统中(早期,OS为单处理机),处理机的分配和运行都是以进程为单位的(参考进程的定义),因而处理机的管理可归结为对进程的管理。处理机管理的功能主要包含:进程控制、进程同步、进程通信、调度。下面我们一个个的来分析其功能的具体含义。进程控制是处理机管理中最基本的功能,主要包含为调入内存中的作业创建进程、终止已完成的进程、将因发生等待事件而无法继续执行的进程置于阻塞状态、负责进程运行中状态的转换等功能。进程控制一般是由OS内核中的原语来实现的原创 2020-01-23 22:49:24 · 2214 阅读 · 0 评论 -
经典的进程同步问题-----读者-写者问题详解
经典的进程同步问题-----读者-写者问题详解 本文和接下来几篇博文是对上篇文章(进程同步机制)的一次实践,通过具体的例子来加深理论的理解,会用三个经典的进程同步问题来进行讲解,并且会配有伪代码和Java实践(使用多线程模拟),深入的进行讲解。 进程同步问题是一个非常重要且相当有趣的问题,本文我们对其中比较有名的读者-写者问题来进行探讨。读者-写者问题是指保证一个Writer进程必须与其他...原创 2019-11-25 08:34:08 · 7707 阅读 · 10 评论 -
经典的进程同步问题-----哲学家进餐问题详解
本文和接下来几篇博文是对上篇文章(进程同步机制)的一次实践,通过具体的例子来加深理论的理解,会用三个经典的进程同步问题来进行讲解,并且会配有伪代码和Java实践(使用多线程模拟),深入的进行讲解。 进程同步问题是一个非常重要且相当有趣的问题,本文我们对其中比较有名的哲学家进餐问题来进行探讨。哲学家进餐问题是诸进程间竞争临界资源而导致死锁的典型例子,具有很大的代表性,因此在这里我们也对其进行...原创 2019-11-25 08:33:21 · 39112 阅读 · 22 评论 -
经典的进程同步问题-----生产者-消费者问题详解
经典的进程同步问题-----生产者-消费者问题详解 本文和接下来几篇博文是对上篇文章(进程同步机制)的一次实践,通过具体的例子来加深理论的理解,会用三个经典的进程同步问题来进行讲解,并且会配有伪代码和Java实践(使用多线程模拟),深入的进行讲解。 进程同步问题是一个非常重要且相当有趣的问题,因而吸引了很多学者对他进行研究,比如在前几篇博客中提到的老熟人迪杰斯特拉,由此也产生了一系列经典的...原创 2019-11-25 08:32:47 · 17394 阅读 · 0 评论 -
进程通信方式总结与盘点
进程通信是指进程之间的信息交换。这里需要和进程同步做一下区分,进程同步控制多个进程按一定顺序执行,进程通信是一种手段,而进程同步是目标。从某方面来讲,进程通信可以解决进程同步问题。 首先回顾下我们前面博文中讲到的信号量机制,为了实现进程的互斥与同步,需要在进程间交换一定的信息,因此信号量机制也可以被归为进程通信的一种方式,但是也被称为低级进程通信,主要原因为:效率低:一次只可操作少量的...原创 2019-11-20 14:25:23 · 13567 阅读 · 2 评论 -
进程同步机制-----为进程并发执行保驾护航
本文是对进程同步机制的一个大总结(9000+字吐血总结),涵盖面非常的全,包括了进程同步的一些概念、软件同步机制、硬件同步机制、信号量机制和管程机制,对每种机制结合代码做了详细的介绍,并且对琐碎的知识点和概念解释的非常清晰。 在前面的博客中讲述了进程的状态及其状态的转换,每种状态的含义和转换的原因。同样我们也知道,在OS引入了进程后,可以使系统中的多道程序可以并发的执行,进程的并发执行一方面极...原创 2019-11-07 10:24:53 · 4359 阅读 · 24 评论 -
操作系统进程状态和状态转换详解
进程的状态的转换与PCB详解 返回主目录 之前的有博文对进程和线程的区别进行了详细的介绍,并且说明了引入进程的目的是为了能够使程序并发的执行,并且可以对并发执行的程序加以描述和控制。这篇博文,我们就来对进程的状态转换来进行详细的分析。本文除了进程的状态转换,还穿插着对进程的控制的说明。 注意:本博文中进程均是在传统操作系统中的进程,既是OS进行资源分配的基本单位,也是OS进行调度的一个...原创 2019-11-01 10:33:02 · 14555 阅读 · 8 评论 -
操作系统武功修炼心法
本篇博客是操作系统这个专栏的目录,在这专栏里,博主会对操作系统进行细致的分析和讲解,主要内容按照操作系统的五大功能(设备管理、作业管理、文件管理、处理机管理和存储器管理)来展开。OS是一门专业课,理论性较强,希望这个专栏能帮助你理解。目录 1.计算机操作系统概述 2.进程和线程的区别—从操作系统的前世今生进行分析 3.纠错–并发和并行的区别博文会持续的更新,希望能帮助到你。...原创 2019-10-29 09:19:19 · 2942 阅读 · 14 评论 -
计算机操作系统概述---目标、作用、功能、特性和发展过程
最近在研究操作系统这门基础专业课,在前面也写了篇博客–进程和线程的区别,从操作系统的发展过程来引出进程和线程被引入到操作系统的目的,并从六大方面对进程和线程进行对比。在里面简单的提了下操作系统的发展过程,不过总感觉这个OS专栏少了一个大纲性质的东西,因此写了这篇博客,后续的博客也都是对本文中操作系统中国的功能和特性来进行展开的。 本来是只讲OS的发展过程的,不过既然是综述性的博文,就把OS的概...原创 2019-10-29 08:51:18 · 10152 阅读 · 13 评论 -
纠错--并发和并行的区别
并行性和并发性是既相似又有区别的两个概念,再开始分析之前,我们先给出并发和并行的概念。 并行是指两个或多个时间在同一时刻发生。 并发是指两个或多个事件在同一时间间隔内发生。 大家看到的图一般如下所示:上述是博主看到的并发和并行的理解,其实我之前也一直是这么认为的,一直到我写了上一篇博客,从操作系统的发展过程对进程和线程进行了分析,才觉得并发的概念似乎并不是这样的,因此这篇博客是一...原创 2019-10-24 19:52:24 · 1863 阅读 · 8 评论 -
进程和线程的区别---从操作系统的前世今生进行分析
面试的时候,我们经常会被问到进程和线程的区别是什么?这个问题也曾困扰过我,在之前,都是百度搜索一下,记一下答案,就糊弄过去了,一直不曾深入的去研究,今天通过这篇博客,以操作系统的发展作为脉络,从操作系统的出现和发展来和大家一起学习进程和线程,并分析进程和线程间的区别。1.举个例子 在正式开始本文之前,我们通过一个例子给大家简答的说下进程和线程。QQ聊天大家应该都用过吧,在我们小时候,为了QQ...原创 2019-10-14 15:55:03 · 2767 阅读 · 24 评论