菜鸟的飞翔日记-os篇

一轮王道os复习感想

1概述

虽然去年有上操作系统这门必修课,考的成绩也算理想,本来还有点沾沾自喜,嗯,觉得自己学的还不错,知道有一天我拿起了王道,(没给王道打广告)看王道的原因完全在于为考研做准备,也是神经一抖就决定要考研了,一直坚持到现在(也不是很长,一直划水)。其实之前一直对于学到的cs知识感到很虚,不知道脑子里一坨东西放在现实世界是个什么鬼,一切都要归咎于学的太浅,就像夏天游泳一样潜不下去,不知道水里面有啥鱼。跑的有点远,回到os来,其实操作系统包含的东西并不多,主要分为进程管理,内存管理,文件管理以及io管理,主要难点在于对整个系统的体系化,纵向和横向的去理解它,其实现代操作系统的发展都是有原因的,像以前单处理机操作系统哪有死锁,人们想让多个进程并行,就必须要解决并行带来的问题。

做了一个操作系统概略图,上面的英文都是翻译的,过两天自己也看不懂

王道上对于操作系统的是这样定义的:操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境的程序集合。
记得教材上的定义好像是说操作系统是位于硬件层之上,软件之下的应用软件,****我也忘记了,看上面的两行字大概可以过滤出控制,管理,软硬件资源,调度,接口等关键字
操作系统的特性:并发共享虚拟异步
操作系统的发展很有意思,最开始是手工操作阶段,这个不说了,算是原始时代,然后就是批处理阶段,先是单道批处理系统,内存中就一道作业,资源利用率和系统吞吐量低的不得了,所以聪明的人类就引入了多道批处理系统,同时多个程序进入内存,并行,那么问题来了,多个程序在内存里共享资源,那么就要合理的的调度资源,处理机选择进程就又需要处理机调度算法,那内存的空间也有限啊,所以又存在内存分配问题,程序和数据输入输出也是个问题,程序和数据可能属于不同的用户,那安全性又是一个问题,所以我想多道批处理操作系统的引入标志着操作系统这本书开始变厚变烧脑;聪明的人类为了让计算机再nb点,想让人机交互,所以出现了分时操作系统,后来又说它不够及时和可靠,所以实时操作系统出现了。后面还有网络操作系统,分布式计算机系统和个人计算机操作系统。
操作系统一般是分开的,分为内核和壳,emmm具体这方面还有点模糊,记得linux课上说Linux的内核和壳是分开的,windows的内核和壳是在一起的,....书上说cpu执行两种程序:内核程序和应用程序,内核程序是应用程序的administrator,对应的状态是目态和管态。再内核里大概有时钟管理,中断机制,原语,系统控制的数据结构及处理。那用户想要使用内核的的功能就需要通过核心态的“门”--中断

这是书上的一个图,画下来说不定哪天就偶然记住了,然后书上说了一些什么关于堆栈的的东西也不是太懂,还说了一个访管指令,用于从用户态转到核心态,所以它不是特权指令,下次好好理解。

2进程管理(核心内容)

2.1进程与线程

首先就是进程的概念,一定要理解进程的程序的区别啊,要是有人问这个问题就要从四个方面来回答:基本概念,产生,可否繁衍,组成。 (见王道p139)
关于进程的五大特征,我觉得与上一个问题有点联系,因为它的特征基本大部分都是能和程序区别开的,对了,一定要注意,进程是一个抽象概念。
关于进程的状态以及状态之间的转换,王道后面的小结用“人的生命历程”来类比进程,p37,王道喜欢类比,后面还用.....忘记了哪里了反正王道的这种理解方式还是很不错    的,amazing。

书上抄的图

这个图上的每一条线都值得深究,具体情况看书。

注意:从运行太到阻塞状态是一个主动行为,从阻塞态到就绪态是一个被动行为,需要其他相关进程的协助。(书上抄的),先有资源的调度,再有进程的切换。

在引入线程之前,进程是操作系统资源分配和独立运行的基本单位,引入了线程之后,进程只作为除cpu之外系统资源的分配单元,线程则作为处理机的分配单元。(那个除cpu之外说实话说的真好,一般很多书上都不会加这个,可以说非常细节了)。
进程由pcb,程序段,数据段组成,pcb创建后就常驻内存,突然觉得我还没能把整本书的前后上下很好的结合起来,有很多细节不到位啊,估计二轮复习后再来看这篇博客肯定觉得我不停的在放屁。
pcb里面有很多内容p32,包括之后的fcb,记住关键内容就i应该够了,fcb即文件目录项,文件管理这一块目前模棱两可。在不同的进程状态就需要把相应的fcb联系在一起,可以有连接方式和索引方式(这些方式都是大同小异,像文件管理这一块文件的逻辑结构,物理结构都用到了索引结构,还有目录结构的索引结点,一下子有三个索引,一定要区分开,说一个文件的索引结构,这个索引结构属于文件的逻辑结构,也就是文件的信息,而 文件的信息往往放在索引结点中)(一定要多做题目,书上没有讲完整的内容全放在课后题了)

进程的通信:

(发现学习linux对于理解操作系统真的非常有帮助,也许这也是当时上操作系统时老师让我们用Linux做实验的原因把,我当时还节节课划水,真是脑阔疼)在linux操作系统中,好像都是线程在运行.。
引入线程的原因主要在于更好的使多道程序并发,减少时空开销。特点在于它与同属于一个进程的其他线程共享进程所拥有的全部资源,同一个进程内的线程切换不会引起进程切换。线程又分为用户级线程和内核级线程,模型有多对一,一对一,多对多模型p36

2.2处理机调度

进程的数量多余处理机的数量,所以有处理机调度
调度层次分为作业调度,中级调度,进程调度。作业调度为进程活动做准备,进程调度使进程正常的活动起来,中级调度将暂不能运行的进程挂起,中级调度处于作业调度和进程调度之间。书上关于这三个调度的关系画的很清楚p51

attention:现场切换时,操作系统内核将原进程的现场信息推入到当前进程的内核堆栈来保存它们,并更新堆栈指针。内核完成从新进程的内核栈中装入新进程的现场信息,更新当前运行进程空间指针,重设pc寄存器等相关工作之后开始运行新进程。p52,涉及到计组内容,忘记的差不多了,有时间再过一遍计组。

然后就是本书的第一家算法,调度算法有FCFS,SJF,优先级,最高响应比,时间片轮转,多级反馈队列。不同的算法会适用于不同的操作系统,比如最高响应比算法,时间片轮转,多级反馈适用于分时操作系统,因为他们都能保证每个任务再一定时间内分配到时间片。

2.3进程同步

为了协调进程之间的相互制约关系,引入了进程同步的概念。
注意临界资源,临界区的概念。
同步(直接制约关系)源于他们之间的互相合作,互斥(间接制约关系)当一个进程进入临界区使用临界资源时,另一个资源必须等待。互斥的准则:空闲让进,忙则等待,有限等待,让权等待。注意和死锁的四个条件区分开来:互斥条件,不剥夺条件,请求和保持条件,循环等待。
然后书上就开始讲实现互斥的方法了:软件实现,从单标志法到双标志法,到双标志法后检查,最后Peterson‘s Algorithm算法,分别违背了空闲让进准则,违背忙则等待准则,会产生饥饿,每一个新的算法的出现都是为了弥补之前垃圾算法的缺陷,这让我想起网络安全基础,从最最古老的经典密码学到现代加密算法,从对称密钥到非对称密钥,到密钥分发,证书发布,一点点弥补历史的漏洞;然后就是硬件实现方法,就大该了解了下,这一节的重点还是在pv操作。
对了还有原语这个概念,原语是指完成某种功能且不被分割不被中断执行的操作序列,通常可由硬件来实现完成不被分割执行特性的功能。pv就是两个原语。
植入:学习专业课知识往往会有种阻碍,经常过一段时间就会对其中的知识点,甚至基本概念变得模糊,专业课知识面广,知识内容也很深,往往需要反复理解,通过多做题来加强巩固,”全面“和“反复多次很重要”。
利用信号量可以实现同步,互斥和前驱关系,(前驱关系往往会被忽略掉)解这类题的关键在于确定pv的大致顺序,确定初值。

然后就是进程同步问题的几个模型,(生产者-消费者,读者-写者问题,哲学家进餐问题,吸烟者问题)考题一般都是这几种模型的变幻,要注意灵活运用。

2.4死锁

多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。
四个条件,注意死锁和循环等待的区别
然后就是死锁的处理:分为预防死锁(设置某些限制条件,破坏产生死锁的四个必要条件之一或之几),避免死锁(资源动态分配中,用某种方法防止系统进入不安全状态(银行家算法)),死锁的检测和解除(资源分配图,死锁定理,死锁解除)

3内存管理(核心内容之二)

3.1概念

操作系统对内存的划分和动态分配
程序的装入和链接,这一块以前真的一点都不了解,这里把操作系统和源程序联系在一起,用户源程序变为可在内存中执行的程序需要经过编译,链接,装入。链接和装入分别都有三种方式,分别分为静态链接,装入是动态链接,运行时动态链接;绝对装入,可重定位装入,运行时动态装入。基本上都是在静态和动态以及在不同阶段的插入做文章。
关于内存保护不太容易理解,寄存器总是忘记了哪是哪,保护方式分为两种,1.设置一对上下限寄存器,2.设置重定位寄存器(基地址寄存器)和界地址寄存器(限长寄存器),重定位寄存器含最小的物理地址值,重定位寄存器是用来“+”的,逻辑地址加上其中的值就得到物理地址,界地址寄存器是用来“比”的,比较界地址寄存器中的值与重定位寄存器加上逻辑地址的值来判断是否越界。attention,从cpu拿来的逻辑地址要先比较界地址寄存器判断是否出错,然后再进入重定位寄存器得到物理地址
内存管理分为覆盖和交换(覆盖已被淘汰),连续分配,非连续分配
连续分配里面又在静态和动态上做文章,有单一连续,固定分区分配,动态分区分配;非连续分配就是本章重点了,理解和区分分页,分段,段页管理,这里讲的分页指的是基本分页存储管理方式,后面虚拟内存讲的是请求分页管理,注意区分。
这里有个考点,关于碎片的产生以及处理,碎片又分为内部碎片和外部碎片,所以说专业课讲的可以说是非常细了,逻辑一定要清晰。然后就是各种内存管理的优缺点了,动态分区华友几个算法(首次适应,最佳适应,最坏适应,邻近适应),这里的难点在于分页分段的计算问题,当时过这一节的时候主要卡在了页表项这个点。
考点:访问一个地址所花的时间,注意块表,页表,内存访问。这一节结合计组的知识应该会更好理解点。然后注意一下页式存储是一维的段式和段页式是二维的。

3.2虚拟内存管理

那么问题来了,计算机内存空间有限,这就需要用到外存来充当“假”内存了。(多道程序并发执行不仅使进程之间共享了处理器,还同时共享了主存)
这里有个很重要的理论:局部性原理。块表,页告诉缓存以及局部性原理都属于高速缓存技术,这个技术所依赖的原理就是局部性原理。局部性原理表现在时间局部性和空间局部性,p177,虚拟存储器概念也在p177
然后就是本书为数巨多的另一个算法:页面置换算法(opt,FIFO,LRU,CLOCK)具体阐述滚去看书。

页面分配策略
这部分优点联系不上其他的知识,优点萌。讲了三种策略:固定分配局部置换,可变分配全局置换,可变分配局部置换。注意别忽视这一块,2015年考过一次。
调入页面的时机,调入页面的时机有点脱轨,下次再来。
然后就是抖动(页面频繁的调入主存调出主存),工作集(合适的工作集大小可以防止抖动现象)的概念了

4文件管理

4.1基础

文件的定义:文件是以计算机硬盘为载体存储在计算机上的信息集合。
attention:系统运行时,计算机以进程为单位进行资源的调度和分配,在用户进行的输入输出中则以文件为基本单位。
文件系统中,数据项是最低级的数据组织形式,相关数据项的集合就是记录,而一组相似的记录组成有结构文件,字符流组成无结构文件(流式文件)。
文件这一块我真是日了够了,什么逻辑结构,物理结构,目录结构,其中的奥秘真是妙不可言。回到文件基础这里,文件的属性,文件的基本操作,文件的打开与关闭理解下来就好,然后注意打通与操作系统的联系。
首先从用户观点出发看到的是文件的逻辑结构,逻辑结构分为有结构文件和无结构文件,有结构文件分为顺序文件,索引文件,索引顺序文件,直接文件或散列文件。一定要注意从用户的角度看到的文件,这里的逻辑结构指的是“内部”逻辑结构,而目录结构是“外部”逻辑结构,目录就是我们打开电脑资源管理器,点进一个磁盘后的一个个目录,所以我觉得目录才是用户真正能看到的,而逻辑结构上的组织,是为了在文件中查找数据服务的,当然这里的数据指的是数据的逻辑地址,找到逻辑地址之后文件管理系统再映射到物理地址。
目录结构里fcb是一个很重要的概念,fcb即文件目录项,fcb里有文件名,文件的物理地址,文件的逻辑结构,文件的物理结构等;然后就是索引结点的概念,它是由文件描述信息形成的数据结构,而文件目录中每个目录项由文件名和指向该文件所对应的索引节点的指针构成的。
这里的数据计算,以及物理逻辑什么的还是有点脑阔疼,慢慢来吧。
硬链接和软连接上linux课上老师讲过,所以理解的还好,所以学习linux对于理解操作系统确实很有帮助,最后就是文件保护了,这一块和网络安全基础有重叠。
complement:文件系统三部分:与文件有关的软件,被管理的文件,实施文件管理所需要的数据结构。(可以对应的这一节的内容,就像半透明图片一样,可以重叠再原有的图片上)

4.2文件系统的实现

文件系统层次结构:用户调用接口,文件目录结构,存取控制验证,逻辑文件和文件信息缓冲区,物理文件系统,分配模块,设备管理程序模块。
文件实现(文件的物理结构),主要分为文件的分配方式和文件存储空间管理,一个是对磁盘非空闲块的管理,一个是对空闲块的管理。       文件分配方式分为连续分配,链接分配(隐式链接和显式链接),索引分配。(又是这三个鬼)p231 
文件存储空间管理,1.文件存储空间的划分和初始化2.文件存储器空间管理(空闲表,空闲链表,位示图,成组链表)

4.3磁盘组织与管理

这一节基本就是关于理解磁盘的结构,理解扇区,磁道,盘面等结构,然后就是磁头寻找时间,延迟时间,传输时间等对时间计算,不难。这里还有几个磁盘调度算法:FCFS.SSTF.SCAN.C-SCAN算法。

5i/o管理

还没复习,时间越来越紧,情绪波动有点大不好,数学卡了一个多星期没进度真是日了隔壁家的马了,还临近期末考,还有最近的东西决都让人找不到北,操作系统先放一放,以后再安排时间结束它或者用零散的时间来琢磨。说实话,这次总结依然不能很好的体系化,很多地方坑坑洼洼的,坚信反复多次和全面是最好的学习方式,各学科之间是相通。本次总结很多细节和重点都没罗列出来,主要用于整体概念的重构和知识点的重新理解,以及后续二轮复习的对比,算是对一轮复习的一个小结吧。以上可能纯属放屁,那我的博客就是个装了臭屁的塑料袋。

“Money is the McMansion in sarasota that starts falling apart after ten years;Power is the old stone building that stands for centuries,I cannot respect someone who doesn't see the difference." -纸牌屋

                                                                                                                                                                                                                                                       5.27.2018
                                                                                                                                                                                                                                                      天气:好热
                                                                                                                                                                                                                                                      心情:平静
posted @ 2018-05-27 21:15  毛卓  阅读(199)  评论(2编辑  收藏  举报