操作系统饥饿现象_操作系统心得体会

一、操作系统

1.基本概念

操作系统简称OS,是配置在计算机硬件上的第一层软件,它能够有效的组织和管理计算机系统中的硬件和软件资源,合理的组织计算机工作流程,控制程序的执行,并向用户提供各种服务功能。OS是现代计算机系统中最基本和最重要的系统软件。

2.操作系统的作用

它有三个作用:第一,OS作为用户与计算机硬件系统之间的接口;第二,OS作为计算机系统资源的管理者;第三,OS实现了对计算机资源的抽象。

3.操作系统的主要特征

操作系统的主要特征是:并发,共享,虚拟和异步,这四个特征之间也有紧密的联系。

(1)并发和共享是操作系统的最基本特征

(2)并发和共享互为存在条件

(3)虚拟以并发和共享为前提条件

(4)异步是并发和共享的必然结果

4.操作系统的主要功能

操作系统的主要功能是:处理机功能,存储器功能,设备管理和文件管理等基本功能。

二、进程与线程

1.进程

进程是操作系统进行资源分配的基本单位。进程控制块 (PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。

进程具有三种状态:就绪,阻塞和执行

bb889dd7246de380ea27ddcb619e898e.png

2. 线程

一个线程中可以有多个线程,是独立调度和分派的基本单位。同一个进程中的多个线程之间可以并发执行,它们共享进程资源。

3. 调度算法

(1)批处理系统中的调度:先来先服务(FCFS),短作业优先(SJF),最短时间剩余优先(SRTN)

(2)交互式系统中的调度:优先权优先,时间片轮转,多级反馈队列,短进程优先

(3)实时系统中的调度:硬实时和软实时

4. 进程同步

(1)同步与互斥

同步指多个进程按一定顺序执行;互斥指多个进程在同一时刻只有一个进程能进入临界区。

同步是在对临界区互斥访问的基础上,通过其它机制来实现有序访问的

(2)信号量

如果信号量的取值只能为 0 或者 1,那么就成为了互斥量(Mutex),0 表示临界区已经加锁,1 表示临界区解锁。

typedef int samaphore;

samaphore mutex = 1;

void PA() {

While(1){

wait(mutex);

// 临界区

signal(mutex);

//剩余区

}

}

void PB() {

While(1){

wait(mutex);

// 临界区

signal(mutex);

//剩余区

}

}

(3)经典进程同步问题

1.使用信号量实现生产者-消费者问题:

假定在生产者和消费者之间的公共缓冲池中具有n个缓冲区,使用一个互斥量 mutex 来对临界资源进行访问;empty 记录空缓冲区的数量,full 记录满缓冲区的数量。

如果将该问题用卖衣服形容,大致过程如下:

商家生产衣服(生产者制造数据)->商家把生产好的衣服放到店里卖(生产者把数据放入缓冲区)->顾客买衣服(消费者从缓冲区取出数据)->顾客拿回去进行裁剪之类的动作(消费者处理数据)

2.读者-写者问题

允许多个进程同时对数据进行读操作,但是不允许读和写以及写和写操作同时发生。

一个整型变量 count 记录在对数据进行读操作的进程数量,一个互斥量 count_mutex 用于对 count 加锁,一个互斥量 data_mutex 用于对读写的数据加锁。

3.哲学家进餐问题

五个哲学家围着一张圆周,每个哲学家面前放着饭。哲学家的生活有两种交替活动:吃饭以及思考。当一个哲学家吃饭时,需要先一根一根拿起左右两边的筷子。为了防止死锁的发生,可以加一点限制,只允许同时拿起左右两边的筷子,方法是引入一个互斥量,对拿起两个筷子的那段代码加锁。

三、死锁

集合中的每一个进程都在等待只能由本集合中的其他进程才能引发的事件,那么该组进程是死锁的。

1. 死锁产生的必要条件

互斥条件,请求和保持条件,不可抢占条件,循环等待条件

2. 死锁的处理方法

(1)预防死锁

破坏不可抢占条件、破坏请求和保持条件、破坏循环(环路)等待条件

注:不可破坏互斥条件,因为互斥条件是非共享设备所必须的。

(2)避免死锁

利用银行家算法避免死锁:

可利用资源向量Available,最大需求矩阵Max,分配矩阵Alloc,需求矩阵Need。

9ac4062de20dfaa03b807485aafccd25.png

(3)死锁检测与解除

四、存储器管理

1. 分页和分段

(1) 分页

用户程序的地址空间被划分为若干固定大小的区域,称为“页”。相应地,内存空间分成若干个物理块,页和块的大小相等,页与块的对应关系称为“页表”。可将用户程序的任一页放在内存的任一块中,实现了离散分配,由一个页表来维护它们之间的映射关系。

(2)分段

分段的做法是把每个表分成段,一个段构成一个独立的地址空间。每个段的长度可以不同,可以动态改变。

每个段都需要程序员来划分。

(3)段页式

用分段方法来分配和管理虚拟存储器。程序的地址空间按逻辑单位分成基本独立的段,而每一段有自己的段名,再把每段分成固定大小的若干页。

用分页方法来分配和管理实存。即把整个主存分成与上述页大小相等的存储块,可装入作业的任何一页。程序对内存的调入或调出是按页进行的。但它又可按段实现共享和保护。

(4)分页与分段区别

地址空间的维度:分页是一维地址空间,分段是二维的。

大小是否可以改变:页的大小不可变,段的大小可以动态改变。

对程序员的透明性:分页透明,但是分段需要程序员显示划分每个段。

2. 存储管理

(1)分页式存储管理

需要访问两次内存,目的是提高内存利用率

物理地址=页的大小页号+页内位移

页号=相对地址/块尺寸

页内位移=相对地址%块尺寸

(2)分段式存储管理

目的:方便用户使用编程,存储共享,存储保护,动态增长, 动态链接

段表:段号、段长、该段在内存的基址(起始地址) {段号,段内位移}

物理地址=段的起始地址+段内地址

逻辑地址=段号+段内地址

(3)分段式存储管理(三次访问内存)

基本原理:万段和力页原理的结合,即先将用户程序力成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。

逻辑地址= 段号+页号+页内位置

虚拟存储器:是具有请求调入功能和置换功能,能从逻辑上对内存容里加以扩充的一种存储器系统,其逻辑容里由内存容里和外存容里之和所决定,其运行速度接近于内存速度。

3. 页面置换算法

(1) 最佳(Optimal)

所选择的被换出的页面将是最长时间内不再被访问,通常可以保证获得最低的缺页率。

举例:一个系统为某进程分配了三个物理块,并有如下页面引用序列:

7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1

进程运行时,先将 7,0,1 三个页面装入内存。当进程要访问页面 2 时,产生缺页中断,会将页面 7 换出,因为页面 7 再次被访问的时间最长。

(2)先进先出(FIFO)

所选择换出的页面是最先进入的页面。

该算法会将那些经常被访问的页面也被换出,从而使缺页率升高。

(3)最近最久未使用(LRU, Least Recently Used)

虽然无法知道将来要使用的页面情况,但是可以知道过去使用页面的情况。LRU 将最近最久未使用的页面换出。

可以用栈来实现该算法,栈中存储页面的页面号。当进程访问一个页面时,将该页面的页面号从栈移除,并将它压入栈顶,这样,最近被访问的页面的页面号总是在栈顶,而最近最久未使用的页面的页面号总是在栈底。

五、设备管理

1. 磁盘调度算法

当多个进程同时请求访问磁盘时,需要进行磁盘调度来控制对磁盘的访问。磁盘调度的主要目标是使磁盘的平均寻道时间最少。

(1)先来先服务(FCFS)

根据进程请求访问磁盘的先后次序来进行调度。优点是公平和简单,缺点也很明显,因为未对寻道做任何优化,使平均寻道时间可能较长。

(2)最短寻道时间优先(SSTF)

要求访问的磁道与当前磁头所在磁道距离最近的优先进行调度。这种算法并不能保证平均寻道时间最短,但是比 FCFS 好很多。

(3)扫描算法(SCAN)

SSTF 会出现进行饥饿现象。考虑以下情况,新进程请求访问的磁道与磁头所在磁道的距离总是比一个在等待的进程来的近,那么等待的进程会一直等待下去。

当一个磁头自里向外移动时,移到最外侧会改变移动方向为自外向里,这种移动的规律类似于电梯的运行,因此又常称 SCAN 算法为电梯调度算法。

(4) 循环扫描算法(CSCAN)

CSCAN 对 SCAN 进行了改动,要求磁头始终沿着一个方向移动。

2. 对I/O设备的控制方式

(1)程序循环测试方式(程序查询式) .

是指用户进理使用。Start指令启动设备后,不断地执行指令,去测试所自动设备的状态寄存器。

数据寄存器:用来存放传输的数据

状态寄存器:用来记录设备当前所处状态

(2)中断方式

所谓“中断”是一种使CPU暂时中止正在执行的程序而转去处理特殊时间的操作。

引起中断的时间称为中断源。

程序中产生的中断,由CPU的某些错误结果(如,计算机溢出)产生的中断称为“内中断”,由外部设备控制器引起的中断称为“外中断”

(3)直接存储器存取方式(DMA 方式)

特点:能使I/0设备直接和内存储器进行成批数据的快速传输。

DMA控制器包括四个寄存器:数据寄存器,状态寄存器,地址寄存器,字节计数器

(4)通道方式

通道方式能够使CPU彻底从I/O中解放出来。CPU进行善后处理和启动。

通道是一个独立于CPU的,专门用来管理输入/输出操作的处理机。

通道是通过执行通道程序并与设备控制器共同实现对I/O设备的控制的。

它规定了设备应该执行的各种操作的顺序。由-系列通道指令所构成,CPU对I/O请求只去做启动和善后处理工作,输入/输出的管理以及数据传输等事宜,全部由通道独立完成。

六、文件管理

(1)目标:提高外存储空间的利用率

(2)主要任务:对用户文件和系统文件进行管理,方便用户使用,并保证文件的安全性

文件存储设备是以块为单位进行管理的

(3)所谓“文件”是指具有完整逻辑意义的一-组相关信息的集合,它是在磁盘上保存信息,而且能方便以后读取的方法,文件用符号名加以标识,这个符号名就被称为“文件名”

(4)文件的存取

顺序存取

随机存取

(5)磁盘空间的管理

a.磁盘是以块为单位进行分配的

b.磁盘与内存之间是 以磁盘块为信息传输的单位

c. 选定了块的大小,还要对它们进行管理,即要记住哪些已经分配,哪些仍然空闲。

d. 常采用的磁盘存储空间管理方案有:位示图,空闲块表,空闲块链

(6)文件的操作:

创建文件、删除文件、打开文件、关闭文件、读文件、写文件

(7)目录的层次结构

如果把所有文件的FCB都登记在一一个文件目录中,这样由文件名查文件目录项,直接就能够找到所需要的文件,那么就成这种文件目录为一级目录结构

优点:

简单,能实现目录管理中最基本的功能-按名存职

缺点:

查找速度慢,不允许重名,不便于实现文件共享

二级目录结构:

由“主目录”与“用户目录”二级构成,在主目录(根目录)中,每个目录项的内容只是给出文件主名以及它的目录所在的磁盘地址。

优点:

提高了检索目录的速度

b. 在不同的文件目录中,可以使用相同的文件名

c.不同用户还可使用不同的文件名访问系统中的同一个共享文件

缺点:

a. 若一个用户可以拥有很多文件,则查找时间仍然很长

b.用户无法对自己的文件进行再分类安排

以上是我对这本书大概学过内容的整理,但是对操作系统的学习远远不止于此,本学期学的内容还有很多我没有掌握的地方,很多地方也可以结合生活中的例子,化抽象为具体,我们就会更加清楚的了解它。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

组态王怎么做超级曲线_鸭肉怎么做?大叔教你红烧鸭块,香气扑鼻,简单易做,超级好吃...

晚餐总是要有硬菜上桌的,所谓硬菜无非是鸡鸭鱼肉,买只鸭子吧,倒也是不在乎哪天吃大荤,鸭子算是减肥食谱,对高血压,心脏病有一定的好处,另外,癌症病人不能吃鸡,鸭子却是可…

使用Spring的缓存管理器缓存Web内容

在这篇文章中,我想向您展示如何使用Spring的CacheManager, Cacheable和JMX批注来缓存和管理Web内容的缓存的基础知识。 想象一下一个网上商店,它从远程WCMS(Web内容管理系统)获取一些内容,例如页眉&#xf…

学水利的想转行计算机,为什么说千万别学水利水电工程?附水利八大院排名2020年(最新)...

选择科目测一测我能上哪些大学选择科目领取你的专属报告>选择省份关闭请选择科目确定v>水利水电工程一直是国家建设中离不开的一个环节,该专业在父母眼中是也很有前途的专业,但近几年,许多人不太看好水利水电工程专业了,甚至…

【WP8】ResourceDictionary

WP8中引用资源字典 当我们定义的样式太多的时候,我们可以把样式分别定义在不同的文件中,然后通过 MergedDictionaries 应用到其他资源字典中,看下面Demo 我们可以把样式定义在多个文件中,然后再App.xaml中引用 我们先定义三个文件…

python夹角余弦雷达图_雷达导论PART-II.1 无线电波与交变电流信号

今天开始进入第二篇-必要的准备知识,全部的篇章结构见我的第一篇文章“雷达导论 引言”。第二篇有3个章节,如下图所示,分别是第4章-无线电波与交变电流信号、第5章-用一种非数学的方法理解雷达、第6章-雷达的数学预备知识。今天先讲第4章&…

Oracle Java Mission Control:终极指南

“我们喜欢关注Mikhail Vorontsov的博客,并获得他对Java Performance相关问题的看法。 我们曾多次被问到Takipi的Java错误分析与Java Mission Control和Java Flight Recorder有何不同。 因此,尽管工具之间的差异很大(主要是,JMC主…

用计算机演奏打上花火,米津玄师打上花火歌词中文谐音(最好要简单全面)

满意答案.Ador2020.03.19采纳率:60% 等级:14已帮助:2446人打上花火 - 《升起的烟花,从下面看?还是从侧面看?》主题曲 词:米津玄师 曲:米津玄师xDAOKO有些地方一些音不对请见谅哈 …

两个向量之间的夹角公式_关于平面向量夹角求参数取值范围的两种基本解法介绍...

平面向量的夹角问题是考察高中向量知识掌握程度的常考内容,主要涉及到的知识点是平面向量的数量积公式。在这里介绍一道常见的平面向量题目,通过两种最基本的解法,来帮助同学们理解向量之间的夹角。填空题第15题:设平面向量a(-2&a…

宿迁学院的计算机系怎么样,宿迁学院是几本 学生评价怎么样好不好(10条)

宿迁学院是几本 学生评价怎么样好不好(10条)考生之前的努力奋斗就是为了高考报志愿时有更多的底气和把握。而俗话说,三分考、七分报,有很多考生和家长都还不太了解大学的一本、二本、三本之分,本科高校只有一个层次和等级,就是(本…

Google Guava:您永远不会知道的5件事

每个开发人员都可以使用哪些鲜为人知的Google Guava功能? 它是那里最受欢迎的库之一,它是开源的,您可能已经知道了,它来自人们玩Quidditch作为一项真正的运动的地方(至少在The Internship上 )。 它不是哈利…

hql中获取前一天的数据_PostgreSql 怎么获取数据库中关键系统信息(一)

如何通过SQL 的方式获得数据库中的一些关键信息,是一个DB最正常的工作,如何通过一些SQL来获得PG的一些关键的参数和信息或者是数据库中的一些信息是需要知道的一件事情。以下是部分 1一般来说每种数据库中都有一个或几个系统的数据库,在PG中s…

计算机信息技术为教育带来的变化,信息技术对课堂教学带来的变化

信息技术对课堂教学带来的变化谈一谈信息技术对教育教学的影响以及给课堂教学带来的变化龙川县培英学校 骆俊武在信息技术迅速发展的今天,计算机的应用、网络技术应用,直接影响着学校的的教育教学系统、学校的教育模式、教第一文库网师的教学方法。与传统…

abd shell关闭所有程序_一个 Shell 脚本逆袭的规范,拿走不谢

指定一个默认脚本解释器“#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。他指明了当我们没有指定解释器的时候默认的解释器。为什么建议要在首行加上脚本默认解释器,因为有的操作系统的默认解释器不是sh…

unity 是厘米还是米_1种“竹节参”,植株有40厘米高,能挂果,果子成熟后变红,珍贵...

很多顽强的野生植物会在竹林里生长,我们都知道价值比较高的七叶一枝花、金线莲等植物,就会生长在湿润的竹林里,它们喜欢湿度比较高的环境,所以在其它比较潮湿的地方也有。不过还有1种“竹节参”,它在竹林里也是常见的&…

JS中的三种弹框

1.alert();"弹框提示" 2.confirm();“确认信息”3.prompt();"输入信息"转载于:https://www.cnblogs.com/hr2014/p/3637692.html

python 窗口 网页 访问_同事用Python操控浏览器运行,引的妹子围观不止!

Python可以做的事情很多,小编也正在奋力挖掘中,今天给大家分享一下,如何用Python来控制浏览器的运行及操作!嗯 关于这个,大体有两种方式,且听小编一一列举:一、使用系统自带库 os这个方法的话任…

8g可用 安装内存16g_同样是16g内存,为啥都选两条8G,不选16G单条,这难道有啥讲究?...

相信大家在看一些大神的配置,或者蜗牛这种装机小编的配置的时候,发现内存经常是两条8G,而不是一条16G,很多小伙伴也发出了疑问,难道这里面有什么讲究?这就要扯到双通道,一般来说CPU或者主板的内存控制器有两…

Generate GUID using vbscript

在 .msi 中 的 Component table,查看 ComponentId 列,是一个16进制数的字符串, 用 InstallShield IDE 添加一个 component ,ComponentId 会自动生成,点击“Generate GUID” 会重新生成一个新的 ComponentId&#xff0c…

ps怎么对比原图快捷键_PS教程:P图前后,你还能认出这是同一个人吗?

编按:PS一直被誉为亚洲四大邪术之一,比如下图你敢相信这是同一个人吗?是不是隐隐约约回忆起了乔碧萝殿下的辉煌?但话说回来,谁不想看到最好的自己呢?今天我们就看看PS如何将人脱胎换骨,学会这招…

第一个被赋予公明身份的机器人_一文读懂机器人的“眼睛”

看过漫威电影的同学都知道,钢铁侠在装甲里一眨眼,就通过眼球追踪操控人机互动,集黑科技于一身的装备简直不要太炫酷。如今,我们再回头看钢铁侠的AI识别系统,不禁思考这背后的视觉技术。如何让机器人像人类一样获取视觉…