【读过的书,留下的迹】操作系统精髓与设计原理

前言

  最近发现有时候看完一本书,时间久了容易忘记,看书不总结思考效果大打折扣,故打算写这一系列文章,一是为了整理书中的要点,帮助自己消化理解;二是勉励自己多看书思考。文章中不会把书中内容讲解的非常详细,只是总结概括,适合已经阅读过该书的读者。

第3章:进程描述和控制

(1)进程定义

  • 通俗:计算机上执行的程序实例
  • 不通俗:能分配给处理器并由处理器执行的实体

(2)进程控制块

  • 一个数据结构,存储充分的信息
  • 作用:为调度、资源分配、中断处理、性能监控和分析提供信息,如中断一个进程后,后续可恢复
  • 包含:
    • 标识符:进程唯一标识
    • 状态:进程状态
    • 优先级:
    • 程序计数器:下一跳指令的地址
    • 内存指针:程序代码和进程相关数据的指针,和其他进程共享内存块的指针
    • 上下文数据:进程执行时处理器的寄存器中的数据
    • IO状态信息:IO请求、分配给进程的IO设备、被进程使用的文件列表
    • 记帐信息:处理器时间总和、时钟数总和、时间限制、记帐号65

(3)进程状态



  • 运行态Running:进程正在执行
  • 就绪态Ready:进程准备好,随时可以执行
  • 阻塞态Blocked:进程在某些事件发生前不能执行
  • 新建态New:刚刚创建好,如进程控制块未加载到内存中
  • 退出态Exit:从可执行进程组中被释放的进程,或进程自身停止
  • 挂起Suspend:进程被暂时换出内存

第4章:线程、对称多处理(SMP)和微内核

(1)进程和线程

  • 进程(程序)拥有两大特点
    • 资源所有权(拥有资源的单位仍被称作进程)
    • 调度/执行(这一单位被称作线程)

第5章:并发性:互斥和同步

ps:下面以进程并发说明。在某些系统中并发的基本单位是线程而不是进程。

(1)并发相关术语

  • 原子操作:一个或多个指令的序列,对外是不可分的
  • 临界区:是一段代码,在这段代码中进程将共享资源,只准一个进程在这段代码中运行
  • 死锁:两个或以上进程因其中的每个进程都在等待其他进程完成某事而不能执行
  • 活锁:两个或以上进程为了响应其他进程中的变化而持续改变自己的状态但不做有用的工作
  • 互斥:当一个进程在临界区访问共享资源时,其他进程不能进入该临界区访问任何共享资源
  • 竞争条件:多个线程或进程在读写一个共享数据时,结果依赖于它们执行的相对时间
  • 饥饿:一个可运行进程尽管能继续执行,但被调度器无限期忽略

(2)常用并发机制

  • 信号量:用于进程间传递信号的一个整数值。在信号量上只有三种操作可以进行,初始化、递减和增加
  • 二元信号量:只取0值和1值的信号量
  • 互斥量:类似二元信号量,但需由同一个进程加锁和解锁
  • 条件变量:一种数据类型,用于阻塞进程或线程,直到特定的条件为真
  • 管程(Monitor,也称监视器):一种编程语言结构,在一个抽象数据类型中封装了变量、访问过程和初始化代码。管程的变量只能由管程自己的访问过程来访问,每次只能有一个进程在其中执行。访问过程即临界区。(类似一个类?)
  • 事件标志:作为同步机制的一个内存字。应用程序可标记每个位关联不同事件,通过测试相关的一个或多个位,线程可以等待一个事件或多个事件
  • 消息传递:两个进程交换信息的一种方法。为实施互斥,进程间需要同步;为了合作,进程间需要交换信息。
  • 自旋锁

(3)进程/线程同步、通信关系(不一定对,参考http://blog.csdn.net/yes_sir_yes/article/details/46707877

  • 同步与通信
    • 进程同步是一种进程通信,通过修改信号量,进程之间可建立起联系,相互协调运行和协同工作。但是信号量与PV操作只能传递信号,没有传递数据的能力,进程之间互相交换信息的工作称之为进程通信
  • 线程/进程

    • 线程/进程有同步
    • 只有进程通信,无线程通信
  • 线程同步

    • 互斥、信号量、事件(信号)、临界区(其实这不算一种同步方法,临界区只是指一段代码段)
  • 进程同步
    • 互斥、信号量、管程
  • 进程通信
    • 信号量、管道、命名管道(FIFO)、共享内存、消息队列、socket

第6章:并发:死锁和饥饿

(1)死锁的条件

  • 互斥
  • 占有且等待
  • 不可抢占
  • 循环等待(结果)

第7章:内存管理

(1)术语

  • 页:一个固定长度的数据块,储存在二级存储器中(如磁盘)。数据页可以临时复制入内存中的页框中
  • 段:一个变长的数据块,储存在二级存储器中。整个段可以临时复制到内存的一个可用区域内(分段),或者可以将一个段分为许多页,将每页单独复制到内存中

(2)缓冲区溢出:输入到一个缓冲区或者数据保存区域的数据量超过了其容量,从而导致覆盖了其他信息的一种状况。攻击者造成并利用这种状况使系统崩溃或者通过插入特制的代码来控制系统

  • 预防
    • 编译时防御系统
    • 运行时防御系统

第8章:虚拟内存

  • 虚拟内存可用
    • 分页
    • 分段
    • 段页式

(1)用于虚拟内存的操作系统策略

  • 读取策略
    • 请求分页
    • 预先分页
  • 放置策略
  • 置换策略
    • 最优:置换下次访问距当前时间最长的那些页
    • 最近最少使用算法:置换上次使用距当前最远的页
    • 先进先出算法
    • 时钟(目前最多用,有效,开销小):某一页首次装入内存,置使用位为1;某一页被访问后置为1;需要置换时,顺序查找0,遇到的1的置为0;如果全为1,则全置0,全为0,则置换第一个位置的页。
  • 驻留集管理
    • 请求式清除
    • 预约式清除

第9章:单处理器调度

(1)调度类型

  • 长程调度:决定加入到待执行的进程池中(决定并发度)
  • 中程调度:决定加入到部分或全部在内存中的进程集合中(决定内存的换入换出)
  • 短程调度:决定哪一个可运行的进程将被处理器执行
  • IO调度:决定哪一个进程挂起的IO请求将被可用的IO设备处理

(2)短程调度准则

  • 周转时间
  • 响应时间
  • 最后期限
  • 可预测性
  • 吞吐量
  • 处理器利用率
  • 公平性
  • 优先级
  • 系统资源

(3)调度策略

  • 先来先服务FCFS
  • 轮转:以周期性间隔产生时钟中断,中断发生时,当前正在运行的进程被置于就绪队列中,基于FCFS选择下一个就绪作业运行
  • 最短进程优先SPN
  • 最短剩余时间SRT:针对SPN增加了抢占机制
  • 最高响应比:花费的等待时间 + 总服务时间 / 总服务时间
  • 反馈:进程每次被抢占,在进程队列中降一优先级
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值