- 相关推荐
操作系统学结
经过一天半的战斗,终于把操作系统概论这本书给拿下了。对于曾经专业课学过一些电脑硬件知识的我来说,这本书更加吸引我,以前一些听过的名词或高大上的词语在这本书上被详细介绍了,看的非常有收获。下面来总结下自己的收获:
首先第一章引论,在这里首先介绍了计算机系统,包括了软件和硬件两部分。
接下来就是第一章的重点:操作系统。如下图:
当前流行的操作系统有windows、unix、linux等。微软的windows系统经历了一个从简单到复杂,从低级到高级的过程;从ms-dos---windows 3---windows 95---windows 98---windows nt---windows 2000,再到现在win7、8甚至win10,微软始终在进步。unix是一个通用的交互式分时操作系统,有at&t公司下属的bell实验室开发,在诞生后,源代码就一直公开,用户可以参与到unix的升级中。unix的特点:1.短小精悍;2.可装卸的多层次文件系统;3.可移植性好;4.网络通信功能强。linux是网络时代的产品,继承于unix,并做了很多改进。
第一章总领了全书,后面的二三四五六章都是讲的计算机的各种管理,总结如下图:
在这里我把每章中的重点用红色的颜色标记出来了,这样在精读的时候就可以有重点的向外扩散,抓住考点,征服考试。第一遍阅读画的有点粗糙,在精读的时候再大大的丰富下。
操作系统学结 [篇2]
这里的设备指的是i/o设备,即冯若依曼所提出的计算机五大部件的输入/输出部件,在五大部件中占其二,可想其重要行了,现在,开始我的总结之旅了
i/o系统可以分为:微机i/o设备 和主机i/o设备。这两个之间的区别和联系,我还是不太清楚。感觉微机i/o比主机i/o要简单。
对i/o系统的管理有以下几种管理方式:
程序控制方式:这种方式好比学51单片机编汇编时反复去检测一个端口是否有要求的信号来一样,简单,但对cpu利用率太太太太太低了。
中断方式:这种方式应该用的比较多吧,曾经有老师在课堂上这样形象地描绘中断这个东西,比如说你编程,突然,你的朋友来了个电话,很明显,你不能置之不理,所以,你接了这个电话,挂电话之后,你就会返回刚才编程思路被打断的地方,继续编程了。但这种方式的致命缺点就是,每次传送的数据量太少了,若要传输大量的设备,很明显,设备将要进行n多次的中断,我们知道,我一次中断,会保存当前的psw,register等等信息,所以,是有开销的,若进行很多次中断,cpu的利用率同样很多,因为,很多cpu时间用到对中断的处理上了。
dma方式:这种方式是现在广泛运用的管理方式了,向我们现在听说的什么打开dma啊之类的就是指的这个东西。dma全称是directmemoryaccess(直接内存读写)。它的优点不用说,因为有direct,所以,是很快的。cpu仅仅是干预开始和结束,其他一概由dma控制器来完成,所以,大大的节省了大量的cpu时间。
通道方式:通道完成主存储器和外设之间的信息传输,由于通道这种东西平时没看到过,对这种方式没有什么理解,按照书上所说,这加大了i/o和cpu并行工作的程度。想想也是,cpu仅仅控制通道,通道就可以控制mm和i/o设备之间的信息传输,在后面的章节中,课本对通道的工作过程有了更详细的描述,就是cpu仅仅给出通道所要执行的通道程序在内存中的首地址,其余#url#的事情就有通道完成了,好像通道是一个附加的cpu,专门用来完成数据传输的工作,的确加大了并行工作的程度。
设备管理的目标:提高设备利用率,为用户提供方便,统一的界面。这里值得我好好理解。
这里的方便,指的是屏蔽设备的物理特性,用户只需要知道操作而不必知道每一个设备具体的工作原理。这里的统一指的是不同的设备用统一的操作方式,这样,用户在操作的时候,对不同的设备,好像是用同一种操作命令,如winxp中对硬盘和u盘的操作好像是一样的,比如同样的复制命令等等,统一、简化了用户的使用。把方便和统一结合起来看,就是让用户面对的不再是一个个的物理设备,而是一组具有相同特征的逻辑设备。
设备管理的主要技术:中断技术,dma技术,通道技术,缓冲技术
android logcat 如何获取输出所有内容? 想要的东东没有输出
。我觉得前三个主要是通过硬件来实现的,而缓冲技术,借助硬件,主要是以某种算法,以软件实现的。前面一直再说硬件,现在开始说软件了。
设备管理软件的基本思想是分层构造。想想也是#url#,为了实现设备管理的目标:为用户提供方便,统一的界面,如果不通过分层的思想,层层抽象,是达不到这个目的的。
设备管理软件的目标:设备独立性 和统一命名。设备独立性可以这样来理解,当最底层的物理设备变化的时候,面向用户的那一层软件并不用变,因为,它的下层的软件把这种变化屏蔽了,具体的情况就是,当硬件变化后,我们仅仅改变了驱动程序,但驱动程序与上层软件的接口并没有变,所以,我们的上层软件就不用变化了。提高了软件的复用。这个原理很像我们在数据库中学的三级模式,两级映像,不光提供了物理独立性,还提供了逻辑独立性。统一命名比较难懂,通过例子来说明吧,在winxp中,西部数据和 迈拓的硬盘被当作同样的硬盘设备来使用,在unix中,i/o设备被当作文件来处理,这样,可以通过路径来访问i/o设备。
操作系统学结 [篇3]
1.联机命令的类型:系统访问类型;磁盘操作类型;文件操作类型;目标操作类型;通信类;其他命令
2.操作系统的目标:方便性、有效性、可扩充性、开放性。
3.操作系统的作用:os作为用户与计算机硬件系统之间的接口;os作为计算机系统资源的管理者;os用作扩充机器。
4.操作系统的基本特性:并发、共享、虚拟、异步。
5.操作系统的功能:处理机管理(进程控制、进程通信、调度)、存储器管理(内存分配、内存保护、地址映射、内存扩充。)、设备管理(缓冲管理、设备管理、设备处理)、文件管理(文件存储空间的管理、目录管理、文件的读/写管理和保护)。
6.常见的操作系统接口有:命令接口、程序接口、图形接口。
7.单缓冲和双缓冲的区别:两台机器之间的通信,配置单缓冲则在任意时刻都只能实现但方向的数据传输,绝不允许双方同时向对方发送数据。在两台机器中设置两个缓冲区,一个用作发送缓冲区,另一个用作接受缓冲区,可实现双向数据传输。
8.操作系统的定义:是一组控制和管理计算机硬件和软件资源,合理的对各类作业进行调度以及方便用户使用的程序集合。
9.高级调度(长度调度或作业调度):用于决定把外存上处于后备队列中那些作业调入内存,并为他们创建进程,分配必要的资源,然后再将新创建的进程排列到就绪队列上,准备执行。
10.低级调度(进程调度或短程调度):用来决定就绪队列中的哪个进程应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作。
11.中级调度(中程调度)引入目的:为了提高内存利用率和系统吞吐量。
12.进程通信的类型:共享存储系统,消息传递系统,管道通信,信号量通信。
13.产生死锁的原因:竞争资源,进程间推进顺序非法
14.产生死锁的必要条件:互斥条件,请求和保持条件,不剥夺条件,环路等待条件。
15.预防死锁:(1)摒弃“请求和保持”条件:若系统有足够的资源分配给某进程,便可把其需要的所有资源分配给该进程,则该进程在整个运行期间,便不会提出资源请求,从而摒弃了请求条件,在分配资源时只要有一种资源不能满足其进程的要求,即使其余所需的各资源都空闲,也不分配给该进程,而该进程等待。由于该进程的等待时间,他并未占有任何资源,因而也摒弃了保持条件,从而可以避免发生死锁。(2)摒弃“不剥夺”条件:当一个已经保持了某些资源的进程,在提出新的资源请求而不能立即得到满足时,必须释放它已经保持了的所有资源,待以后需要时再重新申请,即某一进程已经占有的资源,在运行中会被暂时的释放掉,也可被认为是被剥夺了,从而摒弃了不剥夺条件。(3)摒弃“环路等待”条件:所以进程对资源的请求必须严格按资源序号递增的次序提出,这样在所形成的资源分配图中,不可能在出现环路,因而摒弃了环路等待条件。
16.为什么引入动态重定位?如何实现?
答:为了在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成物理地址,所以引入了动态重定位.可在系统中增加一个重定位寄存器,用它来装入(存放)程序在内存中的起始地址,程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的,从而实现动态重定位.
17.进程的三种基本状态:就绪状态,执行状态,和阻塞状态。
18.进程控制块(pcb)的作用:使一个在多道程序环境下不能独立运行的程序(数据),成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。
19.进程控制块的定义:是进程实体的一部分,是操作系统中最重要的记录型数据结构。
20.引入进程的目的:为了使多个程序能并发执行,以提高资源利用率和系统吞吐量。
21.引入线程的目的:为了减少程序在并发执行时所付出的空开销,使操作系统具有更好的并发性。
线程的属性:轻型实体,独立调度和分派的基本单位,可并发执行,共享进程资源。
22.分时系统的特征:多路性,独立性,及时性和交互性。
23.进程的特征:结构特征,动态性,并发性,独立性和异步性。
24.多道批处理系统的特征:(1)提高cpu的利用率(2)提高内存和输入输出设备的利用率(3)增加系统吞吐量:多道性,无序性和调度性(4)宏观上并行微观上串行
优缺点:资源利用率高,系统吞吐量大,平均周期长,无交互能力;需解决的问题:处理机管理问题,内存管理问题,输入输出设备管理问题,作业管理问题
25.单道批处理系统含义:由于系统对作业的处理都是成批地进行的,且在内存中始终只保持一道作业。单批道处理系统者在提高系统资源后利用率和系统吞吐量。
26.分时系统的定义:在一台主机上接连了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端以交互方式使用计算机共享主机中的资源。分时系统是为了满足用户要求所形成的一种新型os.
27.实时系统是指系统能及时响应外部事件的请求,在规定时间内完成对该事件的处理,并控制所有实时任务协调一致的运行。
28.传统的操作系统结构:模块化的os结构,分层式操作系统结构,微内核操作系统结构(能有效地支持多处理机运行,所以非常适用于分布式系统环境,具有以微内核为操作系统核心,以客户/服务为基础,并采用了面向对象程序设计方法的特征)。
29.程序的并发执行的实质:宏观下程序并行和微观下程序串行
30.先来先服务调度算法:周转时间=完成时间-到达或提交时间
带权周转时间=周转时间/服务时间
31.常用的几种实时调度算法:最早截止时间优先即edf算法,最低松弛优先即llf算法
32.多处理器系统的类型:紧密耦合mps和松弛耦合mps,对称多处理器系统和非对称多处理器系统
34.死锁的解除:剥夺资源,撤销进程
35.内存的连续分配方式:单一连续分配;固定分区分配;动态分区分配;动态重定位分配。
36.动态分区分配算法间的区别:(1)首次适应算法ff:分配内存时,顺序查找,直到找到满足要求的空闲分区为止,优先利用内存中的低址空闲区为大作业的内存空间创造了条件,每次都从开头找,增加查找空闲分区时的开销。(2)循环首次适应算法:从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个能满足要求的空闲分区,从中划出一块与请求大小相等的的内存空间分配给作业,使内存中的空闲分区分布均匀,减少查找空闲分区的开销,但会缺乏大的空闲分区。(3)最佳适应算法:所有空闲分区按容量从小到大顺序排列,每次分配内存时,把能满足要求且最小的空闲分区分配给作业。但会留下许多难以利用的小空闲区。
37.引起进程阻塞和唤醒的事件:请求系统服务;启动某种操作;新数据尚未到达;无新工作可做。
38.阻塞原语:block();唤醒原语:wakeup();挂起原语:suspend();激活原语:active()
39.临界区:每个进程中访问临界资源的那段代码。
40.进程同步机制应遵循的规则:空闲让进;忙则等待;有限等待;让权等待。
41.p、v操作:wait(s):while s≤0 do no-op
s:=s-1;
signal(s): s:=s+1;
42.文件的逻辑结构是指从用户的观点出发所观察到的文件组织形式,也就是用户可以直接处理的数据及其结构,它独立于物理特性。有记录式文件和流式文件。
43.文件的物理结构则是指文件在外存上的存储组织形式,与存储介质的存储性能有关。有连续文件、串连文件、索引文件。
44.什么是分页?什么是分段?二者主要有何区别?
答:分页是将一个进程的逻辑地址空间分成若干大小相等的部分,每一部分称作页面。
分段是一组逻辑信息的集合,即一个作业中相对独立的部分。
分页和分段的主要区别是:分页和分段都采用离散分配的方式,且都要通过地址映射机构来实现地址变换,这是它们的共同点;不同点:页是信息的物理单位,段是信息的逻辑单位;页的大小是由系统固定的,段的长度因段而异,由用户决定;分页的作业地址空间是一维的,分段的作业地址空间是二维的
45.spooling(假脱机操作)定义:在联机情况下实现的同时外围操作。
46.spooling技术是对脱机输入、输出系统的模拟。
47.spooling系统的特点:提高了i/o的速度;将独占设备改造为共享设备;实现了虚拟设备功能
操作系统学结 [篇4]
1.进程通信的方式
进程通信ipc——inter process communication,通信方式主要有:
管道pipe,管道是一种半双工单向通信的方式,适用于亲缘关系的进程,通常指父进程与子进程。有名管道named pipe,与管道类似,不同在于它适用于所有的进程,而不知是亲缘关系进程。
信号量semophone,某个资源可能会被多个进程同时访问,为了保证进程不冲突,使用信号量来确保同一时间只有一个进程在访问资源。通常是一种锁机制,用来使进程与进程或同一进程间多个线程同步。
消息队列message queue,存放于内核中。
信号signal,用来通知某个接受进程某个事件已经发生。
共享内存shared memory,有一个进程创建出一片共享的内存块,可被其他进程访问,是最快的ipc方式。
套接字socket,socket是一种通信接口,通常适用于internet的通信。
2.线程同步的几种方式
临界区,当多个线程访问一个独占资源时,临界区保证了同一时间只有一个线程在访问,其他线程会被挂起,知道访问进程退出临界区,在由其他线程竞争。
互斥量,类似于临界区,不同的是互斥量支持进程兼得同步,而临界区是线程间的。
事件,某个事件发生后,可以去执行接下来的任务,允许进程在执行某个事件后,唤醒其他进程去执行任务。
信号量,当需要限制访问共享资源的线程个数时,使用信号量,信号量通过使用pv操作来实现同步。
3.线程实现的方式
线程分为内核线程kst(kernal support thread)与用户线程ult(user level thread)。
内核线程由系统创建,管理,调度,所以系统回为线程安排时间片,一旦某个线程阻塞,不会影响其他线程,但是内核线程有内核管理,线程的创建以及用户态/内核态的模式切换代价都比较大,所以效率比较低。
用户线程是由用户程序来进行创建,调度,管理。相对于内核线程来说,更加灵活,由于是在用户态上的管理,所以代价比内核管理要少,效率更高,缺点是并发性不足,一旦一个线程进入阻塞态,那么其他线程都会阻塞,因为用户线程没有时间片的概念。
4.用户态和内核态的区别
用户态和内核态是操作系统运行的两种级别,当一个进程执行系统调用而进入内核代码中,称其处于内核态,内核态下cpu处于拥有系统最高权限的内核代码中,执行内核代码会用到当前进程的内核棧,每个进程都有自己的内核棧;当进程在执行用户代码的时候,cpu处于系统最低权限的用户代码中运行。
内核态下cpu可以执行任何指令,用户态下只能执行非特权指令。内核态可以随时切换到用户态,而用户态切换大内核态只有通过系统调用和中断才行。一般一个程序是先在用户态下执行,需要使用系统调用时,通过软中断来进入内核态。
5.用户棧和内核棧的区别
转:内核创建进程,会为进程创建两个棧,用户棧和内核棧。用户棧——存在于用户空间,当进程出于用户态时cpu堆栈指针寄存器存放用户棧的地址,使用用户棧;当进程出于内核态时,cpu堆栈指针寄存器存放内核棧地址,使用内核棧。
当由用户态切换到内核态时,首先将用户棧地址存在内核棧,然后让cpu堆栈指向内存棧;由内核态切换到用户态,将内核棧保存的用户棧地址回复为cpu堆栈指针内容即可。
我们是如何知道内核地址的呢?关键在于进程从用户态到内核态转换后,内核棧总是空的,因为用户态使用用户棧,转换到内核态,内核棧保存进程在内核中运行的信息。但是进程从内核态再到用户态时,内核棧就会被清空。(这个我认为是因为用户态的权限原因,无法获取内核态的信息,所以为空)所以进入内核态,只需将内核棧棧顶地址设置为cpu堆栈内容。
操作系统学结 [篇5]
进程
为描述和有效控制多个程序的并发执行,引入“进程”。什么是进程呢?简单地说,进程就是程序运行的一个动态实体。打个比方,如果把程序比作是菜谱,那么进程就是厨师(可以比作操作系统)炒菜的全过程。一个程序可以对应多个进程。另外再提一下线程的概念,进程是线程的容器,进程向操作系统申请资源,而运行在进程下的(多个线程)则直接使用该进程所拥有的资源。就是说进程为其内的多个线程提供了各种资源和环境,这些线程在进程下可以方便的切换、通信和共享数据而不用操作系统的介入进而效率大大提高;相比之下,进程的切换、通信和共享数据要麻烦得多,需要切换到“管态”,耗费大量的系统开销。
进程由三部分组成,代码段、数据段和pcb。结构如下图所示。
进程调度
进程调度主要是几种经典的算法,注意在了解算法之前应该清楚目标是什么。目标主要考虑四方面:公平性,cpu利用率,系统吞吐量,进程的响应时间。用户要求响应时间尽量地短,系统则要求系统吞吐量高、cpu利用率高、各类资源平衡利用。
fcfs,先来先服务,最简单的算法,基于fifo队列。明显的缺点就是对短进程不公平,想象一下,你去超市只买一袋牛奶,而你前面排着10个人,每个人都是一大车的东西。
spf短进程优先调度是对fcfs的改进,有效地降低了平均等待时间,提高了系统的吞吐量(很适合批处理系统)。但是缺点就是对长进程不利,甚至会饿死长进程(永远执行不到——在1973年关闭mit的ibm7094时,发现有一个低优先权的进程是1967年提交的但一直都未运行)。该调度算法的最大难点在于对还没有执行的进程,怎样才能准确预测它的执行时间长短,怎么选出“最短进程”,书上说是根据用户提交时的估计,其实我觉得还可以建立模型进行估算(比如pcb中的数据信息可以搜集起来作为历史数据,根据历史数据来预测未执行的进程),但无论如何都存在着不准确性和巨大开销的危机。
高优先权优先调度算法,有效地分清任务的轻重缓急。打个比方,你用鼠标点击一个图标,但是为了完成之前的事件,“鼠标点击”事件不得不等待,想想看,一个鼠标点击都要等个10分钟那将是多大的灾难啊! 基于响应比的优先权是比较理想的一种调度,但又不可避免地带来系统频繁计算响应比的开销。
时间片轮转法有很好的交互性,其主要问题是上下文切换需要额外系统开销,由此时间片大小的设置很重要。多级反馈队列调度算法基于时间片算法,动态地确定各进程的优先权并根据优先权的不同设置不同大小的时间片获得了很好的性能。
进程同步
如何访问临界资源是解决问题的关键。如图所示。
注意到,先申请资源信号量,再申请互斥信号量,互斥信号量严格地配对,资源性信号量交叉配对。(如果先申请互斥信号量呢?——申请到使用权的进程,如果阻塞等待资源时,将永远阻塞!)另外,注意读并发程序的方法。
死锁问题
由于多个进程竞争资源而引发的问题。死锁发生的四个必要条件:1.互斥;2.请求和保持:一个进程占有一些资源而等待其他进程的资源;3.不剥夺;4.环路等待。
解决方法
1. 预防死锁:系统通过事先破坏死锁的一个或者若干个必要条件。
互斥条件是不能破坏的,否则并发执行就没有意义了。
对于“请求保持”的破坏,可以要求进程要么一次性申请到所需所有资源然后一次性释放,要么等待,这样很显然会造成资源的极大浪费,因为对于很多资源进程可能只需要用一会儿,可是由于还有资源需要用而闲置那些已用完的资源。
对于“不剥夺”的破坏,很可能造成极大的系统资源和不必要的开销,因为如果剥夺了进程对资源的使用权很可能要撤销很多之前的操作,很多工作都白费。
对于“环路等待”的破坏,则需要进程按照严格的顺序执行。
2. 避免死锁:引进“安全系统”的概念,用银行家算法可以有效地避免死锁。
3. 检测和解除:利用资源分配图检测死锁状态(实现时构造类似于银行家算法中的数据结构),然后解除死锁(两种方法:剥夺;撤销进程)。
进程间的通信
进程间估计通信机制可归结为三类:共享存储器系统、消息传递系统和管道通信。
【操作系统学结】相关文章:
化工操作实结范文08-06
操作工实结范文08-07
助研实结08-06
管理系统学习心得体会05-22
科目三直线行驶的操作技巧与操作要求07-25
如意结的编织方法07-07
学结自我评价08-06
生化科室实结08-06
生产参观实结08-06
生产调度实结08-06