码迷,mamicode.com
首页 > 其他好文 > 详细

现代操作系统笔记

时间:2014-09-01 00:31:31      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:操作系统概念

总结《现代操作系统》的一些概念知识。

1.进程上下文环境:

对进程执行活动全过程的静态描述

由进程的用户地址空间内容、硬件寄存器内容及与该进程相关的核心数据结构组成

  •     用户级上下文:进程的用户地址空间(包括用户栈各层次),包括用户正文段、用户数据段和用户栈
  •     寄存器级上下文:程序计数器、程序状态寄存器、栈指针、通用寄存器的值
  •     系统级上下文:  静态部分(PCB和资源表格)   动态部分:核心栈(核心过程的栈结构,不同进程在调用相同核心过程时有不同核心栈)

2.构造服务器的三种方法:

进程中的线程是相互协作的,而不是相互对立的。如果放弃是为了应用程序,那么线程将 放弃 CPU。毕竟,通常是同一个程序员写的代码。

多线程: 并行性、阻塞系统调用

单线程进程: 无并行性、阻塞系统调用

有限状态机: 并行性、非阻塞系统调用、中断

3. 临界区(互斥区)的使用原则

任何两个进程不能同时处于其临界区中

不应对CPU的速度和数量做任何假设

临界区外运行的进程不得阻塞其他进程

不得使进程无限期等待进入临界区

4.忙等待: 进程在得到临界区访问权之前,持续测试而不做其他事情

5. 原语: 完成某种特定功能的一段程序,具有不可分割性或不可中断性 即原语的执行必须是连续的,在执行过程中不允许被中断,可以通过屏蔽中断、测试与设臵指令等来实现 

6.管程: 是一个特殊的模块,有一个名字,由关于共享资源的数据结构及在其上操作的一组过程组成

7. 多级反馈队列调度算法:

  设置多个就绪队列.给每个就绪队列中的进程分配不同的时间片,优先级高的为第一级队列,时间片最小;随着队列优先级别的降低,时间片增大

  • 当第一级队列为空时,在第二级队列调度,以此类推;各队列按照FIFO+时间片调度算法进行调度,最后一级按照RR
  • 当一个新进程就绪后,进入第一级队列
  • 进程由于阻塞而放弃CPU时,进入相应等待队列;一旦等待的事件发生,则回到原来的就绪队列
  • 时间片到,进程放弃CPU,进入下一级队列
  • 当有一个优先级更高的进程就绪时,可以抢占CPU,被抢占进程回到原来一级就绪队列末尾

8. Windows 线程调度:调度单位是线程,采用基于动态优先级的、抢占式调度,结合时间配额调整,Windows 在单处理机系统和多处理机系统中的线程调度是不同的

就绪线程按优先级进入相应队列,系统总是选择优先级最高的就绪线程让其运行,同一优先级的各线程按时间片轮转进行调度,多处理机系统中允许多个线程并行运行.调度策略: 主动切换. 抢占: 用户态下运行的线程可以抢占内核态下运行的线程. 当线程被抢占时,它被放回相应优先级的就绪队列的队首. 时间配额用完:

9. 产生死锁的条件:1>互斥使用(资源独占):一个资源每次只能给一个进程使用2>占有且等待(部分分配)一个进程在申请新的资源的同时保持对原有资源的占有3>不可抢占(不可剥夺)资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放.4>循环等待:存在一个进程等待队列

10.防止死锁发生可采取的措施:

最多允许4个哲学家同时坐在桌子周围

仅当一个哲学家左右两边的筷子都可用时,才允许他拿筷子

给所有哲学家编号,奇数号的哲学家必须首先拿左边的筷子,偶数号的哲学家则反之

11. 特权指令和非特权指令:

特权指令:只能由操作系统使用的指令.为什么引入:保护,即使用多道程序设计技术的计算机指令系统必须要区分为特权指令和非特权指令。特权指令一般引起处理器状态的切换。处理器通过特殊的机制将处理器状态切换到操作系统运行的特权状态(管态),然后将处理权移交给操作系统中的一段特殊代码,这一个过程称为陷入..

管态:操作系统管理程序运行的状态,较高的特权级别,又称为特权态(特态)、核心态、系统态 目态:用户程序运行时的状态,较低的特权级别,又称为普通态(普态)、用户态.

目态→管态:唯一途径 → 中断或异常(陷入);管态→目态:设置PSW(修改程序状态字)

12. 中断与异常: 可以认为操作系统是由“中断(异常)驱动的”或者 “事件驱动的”.

中断(异常)的定义:CPU对系统中发生的某个事件作出的一种反应;CPU暂停正在执行的程序,保留现场后自动转去执行相应事件的处理程序,处理完成后返回断点,继续执行被打断的程序. 中断(外中断):与正执行指令无关,可以屏蔽。异常(内中断):与正执行指令有关,不可屏蔽。

13. 系统调用:用户在程序中调用操作系统提供的一些子功能. 一种特殊的过程调用,由特殊的机器指令实现。系统调用是操作系统提供给编程人员的唯一接口,系统状态从目态转入管态。利用系统调用,动态请求和释放系统资源完成与硬件相关的工作以及控制程序的执行.

14. 文件:一种抽象机制,一组带标识的、在逻辑上有完整意义的信息项的序列

文件系统:操作系统中统一管理信息资源的一种软件,管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用.

文件的逻辑结构1>流式文件:构成文件的基本单位是字符,文件是有逻辑意义的、无结构的一串字符的集合 好处:提供很大的灵活性 2>记录文件:文件由若干个记录组成,可以按记录进行读、写、查找等操作.

15. 文件控制块:文件控制块是操作系统为管理文件而设臵的数据结构,存放了为管理文

件所需的所有有关信息(文件属性或元数据)文件目录:把所有文件的FCB组织在一起,构成文件目录(即文件控制块的有序集合)簇:一个或多个(2的幂)连续的扇区,可寻址数据块

文件卷:磁盘上的逻辑分区,由一个或多个簇组成。在同一个文件卷中使用同一份管理数据进行文件分配和磁盘空闲空间管理,而在不同的文件卷中使用相互独立的管理数据

16. 打开文件:给出文件路径,获得文件句柄(file handle)或文件描述符(file descriptor),需将该文件的目录项读到内存① 根据文件路径名查目录,找到FCB次部 (或I节点号)② 根据文件号查系统打开文件表,看文件是否已被打开;③ 根据打开方式、共享说明和用户身份检查访问合法性;④ 在用户打开文件表中取一空表项,填写打开方式等,并指向系统打开文件表对应表项

17. 文件系统的一致性:问题的产生:磁盘块 → 内存 → 写回磁盘块若在写回之前,系统崩溃,则文件系统出现不一致.解决方案:设计一个实用程序,当系统再次启动时,运行该程序,检查磁盘块(√)和目录系统

18. 文件系统写入方式:

(1)通写(write-through):内存中的修改立即写到磁盘.缺点:速度性能差.例.FAT文件系统(2)延迟写(lazy-write):利用回写(write back)缓存的方法得到高速.可恢复性差(3)可恢复(transaction log):采用事务日志来实现文件系统的写入.既考虑安全性,又考虑速度性能例:NTFS

19. 文件系统的性能:目录项分解、当前目录、内存映射文件1)块高速缓存:系统在内存中保存一些块(块高速缓存),逻辑上它们属于磁盘.2)提前读取.每次访问磁盘,多读入一些磁盘块.依据:程序执行的空间局部性原理开销较小,具有针对性.3)合理分配磁盘空间:分配块时,把有可能顺序存取的块放在一起,尽量分配在同一柱面上,从而减少磁盘臂的移动次数.4)信息的优化分布:记录在磁道上的排列方式也会影响输入输出操作的时间.5)记录的成组与分解:把若干个逻辑记录合成一组存放一块的工作.6)内存映射文件7)RAID技术:独立磁盘冗余阵列,使用多个并行部件来获得额外的性能提高:1、通过把多个磁盘组织在一起,作为一个逻辑卷提供磁盘跨越功能2、通过把数据分成多个数据块,并行写入/读出多个磁盘,以提高数据传输率(数据分条stripe)3、通过镜像或校验操作,提供容错能力(冗余)8)磁盘调度

20. 磁盘调度:

1)先来先服务:按访问请求到达的先后次序服务 优点:简单,公平; 缺点:效率不高,相临两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利

2)最短寻道时间优先:优先选择距当前磁头最近的访问请求进行服务,主要考虑寻道优先.优点:改善了磁盘平均服务时间;缺点:造成某些访问请求长期等待得不到服务

3)SCAN(电梯算法)4)C-SCAN:总是沿一个方向扫描,当访问到最后一个磁道时,磁头臂返回到磁盘相反方向磁道的末端,再次开始扫描.减少了新请求的最大延迟

5)FSCAN策略,使用两个子队列.克服“磁头臂的粘性”.

6)旋转调度算法:根据延迟时间来决定执行次序的调度

21. 地址保护:确保每个进程有独立的地址空间,确定进程可访问的合法地址的范围,确保进程只访问其合法地址. 地址重定位:为了保证CPU执行指令时可正确访问内存单元,需要将用户程序中的逻辑地址转换为运行时可由机器直接寻址的物理地址,这一过程称为地址重定位

22. 内存管理基本方案:

1)可变分区:根据进程的需求,把可分配的内存空间分割出一个分区,分配给该进程

2)页式:把用户程序地址空间划分成大小相等的部分,称为页。内存空间按页的大小划分为大小相等的区域,称为内存块(物理页面,页框,页帧)。以页为单位进行分配,逻辑上相邻的页,物理上不一定相邻3)段式:用户程序地址空间按进程自身的逻辑关系划分为若干段,内存空间被动态的划分为若干个长度不相同的区域(可变分区)。以段为单位分配内存,每一段在内存中占据连续空间,各段之间可以不连续存放 4)段页式:用户程序地址空间:段式;内存空间:页式;分配单位:页

23交换技术:内存空间紧张时,系统将内存中某些进程暂时移到外存,把外存中某些进程换进内存,占据前者所占用的区域(进程在内存与外存之间的动态调度)

24. 页面置换算法:OPT:置换以后不再需要的或最远的将来才会用到的页面;FIFO:选择在内存中驻留时间最长的页并臵换它;实现:页面链表法;第二次机会SCR:按照先进先出算法选择某一页面,检查其访问位R,如果为0,则臵换该页;如果为1,则给第二次机会,并将访问位臵0;时钟算法:优先选择不需要写回磁盘的页面,节省时间;最近未使用算法(NRU):选择在最近一段时间内未使用过的一页并臵换.设臵页表表项的两位访问位(R),修改位(M);最近最少使用算法(LRU):选择最后一次访问时间距离当前时间最长的一页并臵换,即臵换未使用时间最长的一页.实现:时间戳 或 维护一个访问页的栈→开销大;老化算法:对LRU的改进,计数器在加R前先右移一位R位加到计数器的最左端

25颠簸:在虚存中,页面在内存与外存之间频繁调度,若调度页面所需时间比进程实际运行的时间还多,则系统效率急剧下降,这种现象称为颠簸或抖动

26.工作集:思想:根据程序的局部性原理,一般情况下,进程在一段时间内总是集中访问一些页面,这些页面称为活跃页面,如果分配给一个进程的物理页面数太少了,使该进程所需的活跃页面不能全部装入内存,则进程在运行过程中将频繁发生中断

27.清除策略:设计分页守护进程,大多数时候它是睡眠,但定期被唤醒以检查内存的状态.当需要使用一个已臵换出的页框时,如果该页框还没有被覆盖,将其从空闲页框缓冲池中移出即可恢复该页面.使用一个双指针时钟实现清除策略.前指针由分页守护进程控制:当它指向一个“脏”页面时,就把该页面写回磁盘,前指针向前移动;当它指向一个干净页面时,仅仅向前移动指针.后指针用于页面臵换,与标准时钟算法一样

28页缓冲:不丢弃臵换出的页,将它们放入两个表之一:如果未被修改,则放到空闲页链表中,如果修改了,则放到修改页链表中.被修改的页以簇方式写回磁盘.被臵换的页仍然保留在内存中

29内存映射文件:进程通过一个系统调用将一个文件映射到其虚拟地址空间的一部分,访问这个文件就象访问内存中的一个大数组,而不是对文件进行读写.在多数实现中,在映射共享的页面时不会实际读入页面的内容,而是在访问页面时,页面才会被每次一页的读入,磁盘文件则被当作后备存储.当进程退出或显式地解除文件映射时所有被修改页面会写回文件.

30内存管理器的组成:工作集管理器;进程/堆栈交换器;已修改页面写入器;映射页面写

入器;废弃段线程;零页线程

31Windows的工作集:驻留在物理内存中的虚拟页面的子集

进程工作集:为每个进程分配的一定数量的页框

系统工作集:为可分页的系统代码和数据分配的页框

现代操作系统笔记

标签:操作系统概念

原文地址:http://blog.csdn.net/lgcssx/article/details/38965697

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!