840 likes | 1k Views
操作系统原理. 张晓勇 zxyong@gmail.com. 课程信息. 32 学时, 2 学分 先 修课程:数据结构、程序设计语言 平时成绩 30% ,考试占 70% 课程教材 操作系统 —— 精髓与设计原理(第七版), William Stallings ,电子工业出版社, 2012 参考教材 现代 操作系统(第三版), Tanenbaum.A.S ,机械工业出版社, 2009 计算机操作系统教程(第三版),张尧学,清华大学出版社, 2006. 操作系统 : 精髓与 设计原理. 第二章 操作系统 概述. Seventh Edition
E N D
操作系统原理 张晓勇 zxyong@gmail.com
课程信息 • 32学时,2学分 • 先修课程:数据结构、程序设计语言 • 平时成绩30%,考试占70% • 课程教材 • 操作系统——精髓与设计原理(第七版),William Stallings,电子工业出版社,2012 • 参考教材 • 现代操作系统(第三版),Tanenbaum.A.S,机械工业出版社,2009 • 计算机操作系统教程(第三版),张尧学,清华大学出版社,2006
操作系统:精髓与 设计原理 第二章 操作系统概述 Seventh Edition By William Stallings
操作系统:精髓与设计原理 操作系统为应用程序提供与硬件交互的接口,为运行中的应用程序动态分配可共享的系统资源。涉及到内存、进程和外设的管理与调度。 相邻层次的接口不断改变,早期操作系统的部分功能后来被移植到硬件中,原有与应用程序解决问题无关的功能慢慢包含在操作系统中。 —什么能被自动化?计算机科学与工程研究 MIT Press, 1980
操作系统 是控制应用程序执行的程序 充当应用程序和计算机硬件之间的接口
操作系统提供的服务 程序开发 Program development 程序运行 Program execution I/O访问 Access I/O devices 文件访问控制 Controlled access to files 系统访问 System access 错误检测和响应 Error detection and response 记账 Accounting
关键接口 • 指令集体系接口 Instruction set architecture (ISA) • 应用程序二进制接口 Application binary interface (ABI) • 应用程序开发接口 Application programming interface (API)
操作系统的角色 计算机是一组资源,用于移动、存储和处理数据 操作系统负责管理这些资源
作为软件的操作系统 与普通的计算机软件作用相同,是处理器运行的一段或一组程序 经常释放控制,必须依赖处理器重新获得控制
操作系统的易扩展性 • 主流操作系统需要不断发展:
操作系统的发展 • Stages include:
串行处理 早期计算机: 问题: 调度: 大多数装置使用一个硬拷贝登记表来预定计算机时间 用时可能比预定长短, 导致计算时间浪费 准备时间 将程序运行起来需要花费大量准备时间 • 没有操作系统 • 程序员直接与计算机硬件打交道 • 机器在一个控制台(Console)上运行,控制台包括指示灯、触发器、某种输入设备和打印机。 • 用户串行访问计算机
简单批处理系统 • 早期计算机非常昂贵 • 最大化提高CPU利用率非常重要 • 监控程序Monitor • 用户不再直接与机器打交道 • 用户把卡片或者磁带中的作业(jobs)提交给操作员,操作员将这些jobs按顺序组织成一批,将这批作业交给输入设备上,供监控程序使用。 • 程序完成处理后返回监控程序
监控程序角度 Monitor控制事件的顺序 Resident Monitor 是一个常驻内存的软件 Monitor读取作业并将控制权交出 作业完成后将控制权返回给监控程序
处理器角度 • 处理器执行内存中监控程序的指令 • 这些指令读取用户程序执行,直到遇到一个结束指令或错误条件 • “控制权交给作业”意味着处理器当前读取和执行的是用户程序的指令 • “控制权交给监控程序” 意味着处理器当前读取和执行的是监控程序的指令
简单批处理系统的开销 • 处理器在用户程序与监控程序之前来回切换 • 牺牲: • some main memory is now given over to the monitor • some processor time is consumed by the monitor • 尽管存在以上开销,简单批处理系统还是提高了系统利用率
多道批处理系统 • 处理器经常空闲 • 即便是自动作业序列 • I/O 相比处理器速度太慢
单道程序Uniprogramming The processor spends a certain amount of time executing, until it reaches an I/O instruction; it must then wait until that I/O instruction concludes before proceeding
多道程序Multiprogramming 必须有足够内存容纳OS (resident monitor) 和用户程序 当一个作业需要等待I/O,处理器可以切换到另一个不需等待I/O的作业
多道程序 也称为多任务multitasking 内存扩充为可保存3个或更多的程序,并且在其中切换 多道程序Multiprogramming
多道程序的资源利用率 Table 2.2 Effects of Multiprogramming on Resource Utilization
分时系统Time-Sharing Systems • 能用来处理多个交互性任务 • 处理器时间被多个用户分享 • 多用户通过终端并发访问系统,OS控制每个用户程序以很短的时间交替执行
多道程序批处理vs. 分时系统 Table 2.3 Batch Multiprogramming versus Time Sharing
兼容分时系统Compatible Time-Sharing Systems CTSS 时间片Time Slicing 系统时钟大约每0.2秒产生一个中断 每个中断到来时,OS获得控制权,并分配处理器给另一个用户 在固定的时间间隔内,当前用户被抢占,另一个用户被载入 老用户程序和数据写入到磁盘上,便于下一次恢复 • 第一个分时系统 • 运行在一台内存为32000个36-bit字的,常驻监控程序占了5000个字 • 为了简化monitor程序和内存管理用户程序总是被装载到5000th字处
主要成就 • OS是最复杂的软件之一
进程Process 进程是操作系统设计中的核心概念
计算机系统的发展 • 计算机系统发展的三条主线: • 在时间安排和同步中产生的问题推动了进程概念的发展
错误的原因 • 不确定的程序操作 • 程序共享内存且处理器交错执行时可能会导致由于重写相同内存单元发生不可预测的干扰 • 两个程序被调度的顺序会影响最终的结果 • 死锁Deadlocks • 在两个或多个程序互相等待资源而相互挂起时容易发生 • 依赖于资源分配和释放的时机安排 • 不正确的同步 • 一个程序必须等到缓冲区中有数据才能继续运行,需要等待信号到来 • 设计不当的信号机制可能丢失信号或收到重复信号 • 失败的互斥 • 多个用户同时访问共享资源 • 两个用户中只能有一个用户能编辑同一个文件
进程的组成部分 • 进程的执行上下文是根本: • 是OS操作和监视进程所需的内部数据 • 包括不同进程寄存器数据 • 包括进程优先级、进程是否在等待I/O事件的完成 • 三部分: • 一个可执行程序 • 程序所需的相关数据(变量、工作空间、缓冲区等) • 程序执行的上下文context (进程状态)
进程的管理 进程的整个状态被包含在进程上下文中 操作系统设计中的新功能可以被加到进程上下文的数据结构中来实现
内存管理Memory Management • 5个基本的存储管理责任:
虚拟内存Virtual Memory 允许程序从逻辑的角度来访问内存,而不去考虑物理内存上可用空间数量 方便满足多用户程序同时驻留在内存中的要求
分页Paging • 进程由许多固定大小的块组成,称为页pages • 程序通过一个虚拟地址访问一个字 • 由页号与页内偏移地址组成 • 每个页能够在放置主内存的任何部分 • 分页系统提供了虚拟地址与实地址(或物理地址)之间的动态映射
虚拟存储器Virtual Memory • 内存被分为许多定长的内存块(页),程序执行时,程序的部分或所有页要加载到内存中 • 辅存储器(磁盘)容纳许多定长的页,一个应用程序由许多页组成
信息保护和安全 • 分时系统时提出,计算机网络进一步发展 • 对计算机系统和其中数据的访问控制
调度和资源管理 • OS的关键功能是资源管理 • 资源分配策略必须考虑:
多道程序环境中设计进程调度和资源分配的操作系统的主要组件多道程序环境中设计进程调度和资源分配的操作系统的主要组件
现代OS的特征不同的OS设计方法 • 对操作系统要求的不断变化,需要不断修改现有OS体系结构
微内核体系结构 • 内核仅仅实现最重要的功能: • 微内核结构:
多线程技术Multithreading • 一个应用的进程被分配为能并发运行的多个线程的技术
对称多处理器(SMP) • 是一个计算机硬件体系结构术语,也是一个体现在该结构上的操作系统行为能力 • 多个处理器并行运行 • 多个处理器对用户是透明的 • 这些处理器共享主内存和设备 • 所有处理器能完成相同的功能 • 支持SMP技术的OS调度线程或进程到每个处理器上