必须知道的操作系统原理_第1页
必须知道的操作系统原理_第2页
必须知道的操作系统原理_第3页
必须知道的操作系统原理_第4页
必须知道的操作系统原理_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、必须知道的操作系统原理操作系统 (英语: operating system ,缩写作 OS) 是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。操作系统的类型非常多样,不同机器安装的操作系统可从简单到复杂,可从移动电话的嵌入式系统到超级计算机的大型操作系统。许多操作系统制造者对它涵盖范畴的定义也不尽一致,例如有些操作系统集成了图形用户界面,而有些仅使用命令行界面,而将图形用户界面视为一种非必要的应用程序。下面

2、是小编收集整理的必须知道的操作系统原理范文,欢迎借鉴参考。必须知道的操作系统原理(一)进程概念是现在操作系统的基本概念,已经成为计算机科学中的一大成就。什么是进程 ?进程的出现,是为了是操作系统可以以一种有序的方式管理应用的执行,以达到以下目的:资源对多个应用程序是可用的;物理处理器在多个应用程序之间切换以保证所有程序都在执行中 ; 处理器和 I/O 设备能得到充分利用 ;所有现在操作系统采用的方法都是依据一个或者多个进程存在的应用程序执行的一种模型。 到底什么是进程呢 ?进程是一组元素组成的实体,它可以是一个正在执行中的程序,也可以是一个能分配给处理器并由处理器执行的实体。进程的两个基本元素

3、是:程序代码 (program code) 和代码相关联的数据集 (set of data) 。在进程执行时,任意给定一个时间,进程都可以唯一地表征为以下元素:标识符:进程的唯一标识符,用来区别其他进程状态:进程在不同的生命周期有着不同的状态优先级:相对于其他进程的优先级程序计数器:程序中即将被执行的下一条指令的地址内存指针:包含程序代码和进程相关数据的指针,还有和其他进程共享内存块的指针I/O 状态信息:包括显示的I/O 请求、分配给进程的I/O 设备和被进程使用的文件列表等记账信息:可能包括处理器时间总和、使用的时钟数总和、时间限制、记账号等上述的列表信息被存放在一个称为进程控制块的数据结

4、构中,该控制块由操作系统创建 和管理。进程状态在任何时刻,进程可以处于以下两种状态之一:运行态和未运行态,这是最简单的两状态模型。在这个模型中,会有一个调度器 (dispatcher) ,使处理器从一个进程切换到另外一个进程。由于存在着一些处于非运行状态但已经就绪等待执行的进程,而同时存在另外一些处于堵塞状态等待 I/O 操作结束的进程。因此,解决这一问题比较自然的方法是使用五状态模型: 运行态、就绪态、堵塞 / 等待态、新建态和退出态。(1) 被挂起的进程上述的基本状态提供了一种为进程建立系统模型的方法,并指导系统的实现。但是,往这个模型中添加其他状态也是合理的。由于处理器的运行速度远大于

5、I/O ,以至于内存中所有的进程都在等待 I/O 的情况也是很常见的。因此,即使是多道程序设计,大多数处理器仍然可能处于空闲状态。一种解决方案是增大内存,使得内存中可以存在更多的进程。然而这种方案显然是治标不治本的。另外一种解决方案是交换 (swapping) 。当内存中没有处于就绪状态的进程时,操作系统就把被阻塞的进程换出到磁盘中的挂起队列 (suspend queue) 。操作系统在此之后取出挂起队列中的另一个进程,或者接受一个新进程,将其加载到内存中运行。这时,在进程状态模型中添加了另外一个状态:挂起态。当操作系统从挂起队列中取出一个依然阻塞的进程是毫无意义的,因为它仍然没有准备好执行。

6、所以为了区分被挂起的进程哪些是可以取出的,需要设计另外一种挂起模型:为了区分,需要四个状态:就绪态:进程在内存中并可以执行阻塞态:进程在进程中并等待一个事件阻塞 /挂起态:进程在外存中并等待一个事件就绪 /挂起态:进程在外存中,但是只要被载入内存就可以执行总结一下挂起的进程的概念:1.进程不能被立即执行。2.进程可能是或不是正在等待一个事件。如果是,阻塞条件不依赖于挂起条件,阻塞事件的 的发生不会使进程立即执行。4.为组织进程的执行,可以通过代理把这个进程置于挂起状态,代理可以是进程自己,也 可以是父进程或者操作系统。5. 除非代理显示的命令操作系统进行状态转换,否则进程无法从这个状态中转移。

7、6.除了因为提供更多的内存空间,进程还会因为什么原因被挂起呢?必须知道的操作系统原理(二)1、进程与线程的区别(1)粒度性分析:线程的粒度小于进程。(2)调度性分析:进程是资源拥有的基本单位,线程是独立调度与独立运行的基本单位,出了寄存器,程序计数器等必要的资源外基本不拥有其他资源。(3)系统开销分析:由于线程基本不拥有系统资源,所以在进行切换时,线程切换的开销远远小于进程。2、进程的状态及其转换3、进程同步与互斥的区别互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:是指在互斥的基础上(大多数情况 ),通过其它

8、机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。简单地说:同步体现的是一种协作性,互斥体现的是一种排他性。4、进程间的通信方式有哪些?(1) 管道 ( pipe ) :管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。(2)有名管道 (named pipe): 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。(3)信号量 ( semophore ): 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它

9、常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。(4) 消息队列 ( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。(5)信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。(6)共享内存 ( shared memory ):共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的IPC 方

10、式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。(7)套接字 ( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。5、作业 (或进程 )的调度算法有哪些 ?(1)先来先服务 (FCFS ,First-Come-First-Served):此算法的原则是按照作业到达后备作业队列 (或进程进入就绪队列 )的先后次序来选择作业 (或进程 )。(2)短作业优先 (SJF,Shortest Process Next):这种调度算法主要用于作业调度,它从作业后备队列中挑选所需

11、运行时间(估计值 )最短的作业进入主存运行。(3)时间片轮转调度算法 (RR ,Round-Robin) :当某个进程执行的时间片用完时,调度程序便停止该进程的执行,并将它送就绪队列的末尾,等待分配下一时间片再执行。然后把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间片处理机执行时间。(4)高响应比优先 (HRRN ,Highest Response Ratio Next):按照高响应比 (已等待时间 +要求运行时间 )/ 要求运行时间 )优先的原则,在每次选择作业投入运行时,先计算此时后备作业队列中每个作业的

12、响应比RP 然后选择其值最大的作业投入运行。(5) 优先权 (Priority) 调度算法 : 按照进程的优先权大小来调度,使高优先权进程得到优先处理的调度策略称为优先权调度算法。注意:优先数越多,优先权越小。(6)多级队列调度算法:多队列调度是根据作业的性质和类型的不同,将就绪队列再分为若干个子队列,所有的作业(或进程 )按其性质排入相应的队列中,而不同的就绪队列采用不同的调度算法。6、死锁产生的原因,死锁产生的必要条件是什么,如何预防死锁,如何避免死锁,死锁定理 ?死锁产生的原因: (1) 竞争资源 ;(2) 进程推进顺序不当。死锁产生的必要条件:(1)互斥条件:一个资源一次只能被一个进程

13、所使用,即是排它性使用。(2)不剥夺条件:一个资源仅能被占有它的进程所释放,而不能被别的进程强占。(3)请求与保持条件:进程已经保持了至少一个资源,但又提出了新的资源要求,而该资源又已被其它进程占有,此时请求进程阻塞,但又对已经获得的其它资源保持不放。(4)环路等待条件:当每类资源只有一个时,在发生死锁时,必然存在一个进程-资源的环形链。预防死锁:破坏四个必要条件之一。死锁的避免:银行家算法,该方法允许进程动态地申请资源,系统在进行资源分配之前,先计算资源分配的安全性。若此次分配不会导致系统从安全状态向不安全状态转换,便可将资源分配给进程;否则不分配资源,进程必须阻塞等待。从而避免发生死锁。死

14、锁定理: S 为死锁状态的充分条件是:尚且仅当S 状态的资源分配图是不可完全简化的,该充分条件称为死锁定理。死锁的解除:(1)方法 1:强制性地从系统中撤消一个或多个死锁的进程以断开循环等待链,并收回分配给终止进程的全部资源供剩下的进程使用。(2)方法 2:使用一个有效的挂起和解除机构来挂起一些死锁的进程,其实质是从被挂起的进程那里抢占资源以解除死锁。7、分段式存储管理、分页式存储管理,两个的区别?分段式存储管理:分页存储管理是将一个进程的地址(逻辑地址空间 )空间划分成若干个大小相等的区域,称为页,相应地,将内存空间划分成与页相同大小(为了保证页内偏移一致 )的若干个物理块,称为块或页框(页

15、架 )。在为进程分配内存时,将进程中的若干页分别装入多个不相邻接的块中。分页式存储管理:在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段是一组完整的逻辑信息,如有主程序段、子程序段、数据段及堆栈段等,每个段都有自己的名字,都是从零开始编址的一段连续的地址空间,各段长度是不等的。两者的区别:1、页是信息的物理单位,分页是为了实现非连续的分配,以便解决内存的碎片问题,或者说分页是为了由于系统管理的需要。2、页的大小固定是由系统确定的,将逻辑地址划分为页号和页内地址是由机器硬件实现的。而段的长度是不固定的,决定与用户的程序长度,通常由编译程序进行编译时根据信息的性质来划分。3、分页式存储

16、管理的作业地址空间是一维的,分段式的存储管理的作业管理地址空间是二维的。8、页面置换算法有哪些 ?(1)最佳置换算法 (Optimal) :即选择那些永不使用的,或者是在最长时间内不再被访问的页面置换出去。 (它是一种理想化的算法,性能最好,但在实际上难于实现)。(2)先进先出置换算法FIFO :该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。(3)最近最久未使用置换算法LRU(Least Recently Used):该算法是选择最近最久未使用的页面予以淘汰,系统在每个页面设置一个访问字段,用以记录这个页面自上次被访问以来所经历的时间T,当要淘汰一个页面时,选择T

17、 最大的页面。(4)Clock 置换算法:也叫最近未用算法NRU(Not RecentlyUsed)。该算法为每个页面设置一位访问位,将内存中的所有页面都通过链接指针链成一个循环队列。当某页被访问时,其访问位置“1。”在选择一页淘汰时,就检查其访问位,如果是“0,”就选择该页换出 ;若为 “1,”则重新置为 “0,”暂不换出该页,在循环队列中检查下一个页面,直到访问位为 “0的”页面为止。由于该算法只有一位访问位,只能用它表示该页是否已经使用过,而置换时是将未使用过的页面换出去,所以把该算法称为最近未用算法。(5)最少使用置换算法LFU :该算法选择最近时期使用最少的页面作为淘汰页。必须知道的

18、操作系统原理(三)在工作中经常会遇到这样的情况:想要安装Linux 但是计算机不带光驱或软驱,或者是笔记本配置的非标准的软驱和光驱,如1394 接口, USB 接口等,在 Linux 安装时所引导的 Linux 内核一般都不会带这些接口的驱动,所以也无法通过本地安装Linux ,此外,在一些场合,如机房,IT 实验室,工厂生产线,有大量的计算机需要同时安装 Linux ,如果通过光驱的方式一个个安装,不仅效率低,也不利于维护。这是时候你就需要 PXE 的强大功能了。本文将就PXE 的基本原理和工作方式进行简要介绍。具体的实践过程需要比较丰富的网络知识。1.操作系统安装的流程通用流程:首先, b

19、ios 启动,选择操作系统的启动 (安装 )模式 (此时,内存是空白的 ),然后根据相关的安装模式,寻找操作系统的引导程序 (不同的模式,对应不同的引导程序当然也对应着不同的引导程序存在的位置 ),引导程序加载文件系统初始化 (initrd) 程序和内核初始镜像 (vmlinuz) ,完成操作系统安装前的初始化 ;接着,操作系统开始安装相关的系统和应用程序。硬盘安装的流程: bios 启动 MBR 寻找 grub grub 程序读取 menu.list 等配置文件,找到内核启动镜像和相关初始化程序,安装(或者启动 )。PXE(Pre-boot Execution Environment)是由

20、Intel 设计,可以使计算机通过网络启动的协议。协议分为client 和 server 两端, PXE client 在网卡的 ROM 中,当计算机启动时, BIOS 把 PXE client 调入内存执行,并显示出命令菜单,经用户选择后,PXE client 将放置在远端的操作系统通过网络下载到本地运行。pxe 网络安装的流程: bios 启动 pxe client 中的程序进入内存,显示命令菜单 此程序开始寻找网络引导程序 (bootstrap 文件,这个文件的名字随着发行版的不同而不同,在 centos 中,它是 pxelinux.0) 引导程序读取配置文件 pxelinux.cfg

21、,获得系统初始化的相关文件信息 系统启动,开始进行安装。2.pxe 模式安装操作系统的原理2.1 安装流程客户机从自己的 PXE 网卡启动,向本网络中的DHCP 服务器索取 IP,并搜寻引导文件的位置DHCP 服务器返回分给客户机IP 以及 bootstrap 文件的放置位置 (该文件一般是放在一台 TFTP 服务器上 )客户机向本网络中的TFTP 服务器索取 bootstrap 文件客户机取得 bootstrap 文件后之执行该文件根据 bootstrap 的执行结果,通过 TFTP 服务器加载内核和文件系统进入安装画面 , 此时可以通过选择 FTP,HTTP,NFS 方式之一进行安装 2.

22、2 流程小结总结就是:1)网卡的 client 网卡 rom 寻找 dhcp 服务器,由 /etc/dhcp.conf 得到 ip 和引导程序所在地点2)有 dhcp.conf( 引导程序文件名 )和 tftp 的配置 (tftp 跟路径,里面有引导程序和系统初始化程序 ),得到引导程序pxelinux 启动文件的绝对路径,运行引导程序,读取启动配置文件 pxelinux.cfg/default ,得到操作系统初始化的两个相关文件3)选择安装方式客户端广播 dhcp 请求 服务器相应请求,建立链接 由 dhcp 和 tftp 配置得到 ip 还有引导程序所在地点 客户端下载引导程序并开始运行

23、引导程序读取2.3. 相关文件位置与内容 :dhcp 配置文件 /etc/dhcpd/dhcp.conf ip 管理与引导程序名称tftp 配置文件 /etc/xinetd.d/tftp tftp 根目录,和上面的引导程序名称组成完整路径引导程序读取的配置文件/tftpboot/pxelinux.cfg/default 启动内核其他3.实战过程实战环境 ;centos 6.3,kernel 2.6.323.1 安装前的准备:软硬件配置:网卡要支持pxe 启动,操作系统也要支持pxe 启动,另外有 ftp 服务器用于存储操作系统的安装文件,dhcp 服务器用于分配ip3.2 服务器配置1)配置

24、dhcp 服务器由于 PXE 客户机通常是尚未装系统的裸机,因此为了如服务器取得联系并正确下载相关引导文件,需要预先配置好DHCP 服务来自动分配地址并告知引导文件的位置。注明: filename 这一个选项很重要 ,它的作用是指明 bootstrap 所在的位置 ,一般是指向一个 TFTP 服务器的某个目录下。这里是相对路径,其中路径的上半部分在的一个配置文件之中。2)配置 tftp 服务器TFTP 服务的配置文件是 /etc/xinetd.d/tftp,RedHat9默认安装已经生成了该文件注明:这个文件基本上不用改动 ,但是需要注意的的是 server_args= -s /tftpboot 这一行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论