中国科学技术大学计算机系 陈香兰 xlanchen@ustc.edu.cn Fall 2013 第一讲 绪论 中国科学技术大学计算机系 陈香兰 xlanchen@ustc.edu.cn Fall 2013
内容提要 操作系统的定义、设计目标、作用和层次模型 操作系统的发展动力和发展过程 操作系统的特征、主要功能和服务 操作系统的抽象模型和体系结构
内容提要 操作系统的定义、设计目标、作用和层次模型 操作系统的发展动力和发展过程 操作系统的特征、主要功能和服务 操作系统的抽象模型和体系结构
计算机系统的组成 计算机系统由硬件和软件两部分组成。 操作系统是硬件之上的第一层软件,可以看成是对计算机硬件系统的第一次扩充。 所有运行在操作系统上层的应用软件都会或多或少、或直接或间接地调用操作系统提供的功能,
操作系统的定义 操作系统是一组控制和管理计算机软硬件资源、合理地对各类作业进行调度以及方便用户的程序的集合。 An Operating System is a program that managers the computer hardware provides a basis for application programs acts as an intermediary between the computer user and the computer hardware
操作系统的设计目标 在计算机硬件上配置的OS的(设计)目标有以下几点: 方便性 有效性 可扩充性 开放性
操作系统的作用 对操作系统作用的理解,有不同的观点: 用户与计算机硬件系统之间的接口(图) 计算机资源的管理者(图) 扩充机器(或虚拟机) 命令接口、图形用户接口 编程接口(系统调用接口) 计算机资源的管理者(图) 四类资源:处理机、存储器、I/O设备、文件 扩充机器(或虚拟机) 虚拟机:覆盖了软件的机器 层次性
作为用户与计算机硬件系统之间的接口 用户 程序员 系统设计者 应用程序及实用程序 系统调用,命令,图标,窗口 操作系统 计算机硬件
作为计算机资源的管理者
操作系统的层次模型 什么是层次模型? 一种经典的操作系统的结构模型 Reading:汤子瀛,二版,1.1.3 最高层:接口 中间层:对对象进行操纵和管理的软件集合 最底层:OS操纵和管理的对象,包括各类软硬件资源 Reading:汤子瀛,二版,1.1.3
举例:类UNIX操作系统的经典体系结构图 User interface System programs API Kernel: a large number of functions for one level
举例:Windows操作系统的经典体系结构图
内容提要 操作系统的定义、设计目标、作用和层次模型 操作系统的发展动力和发展过程 操作系统的特征、主要功能和服务 操作系统的抽象模型和体系结构
操作系统的发展动力 操作系统形成至今将近60年。 推动操作系统发展的主要动力有4个方面 历程: 出现了上百种操作系统 大型机、小型机、微机、嵌入式、实时、分布等等 推动操作系统发展的主要动力有4个方面 不断提高计算机资源利用率的需要 方便用户 器件的不断更新换代 计算机体系结构的不断发展 历程: 无OS时代批处理系统分时系统实时系统 PC 分布式和并行系统 嵌入移动系统 …
操作系统的种类 FMS(FORTRAN Monitor System,FORTRAN监控系统) OS/360(IBM为系列机360配备的操作系统) CTSS(Compatible Time Sharing System) MULTICS(MULTiplexed Information and Computer Service) UNIX类、Linux CP/M Windows、Macintosh Mach VxWorks、嵌入式Linux系列、uC/OS-II、RTEMS ……
操作系统的发展过程 无操作系统时期 单道批处理系统 多道批处理系统 分时系统 实时系统 其他操作系统 Reading 分布式、并行、安全 计算机操作系统,汤子瀛,1.2节
History of the OS(1945~1955,无操作系统) Tube-based(电子管) ENIAC 17,468 vacuum tubes 5,000 additions/sec, 1800 square feet, 30 tons Program are hardwired on plug boards One program at a time, Need professional operator User VS. operator Only useful to Numerical calculations No OS at all ! Manual system (人工操作)
History of the OS(1955~1965,批处理系统) Transistor based(晶体管) Jobs on cards or tapes Job(作业) Control cards Language: ASM High level language FORTRAN, ALGOL, COBOL Applications Scientific APPs & Engineering APPs Batch system
批处理系统的工作方式 用户将作业交给系统操作员 系统操作员将许多用户的作业组成一批作业,输入到计算机系统中,在系统中形成一个自动转接的连续的作业流 作业是成批的 启动操作系统 系统自动、依次执行每个作业 由操作员将作业结果交给用户
批作业处理:对批作业中的每个作业进行相同的处理 批处理系统中的作业的组成: 用户程序 数据 作业说明书(作业控制语言) 批的含义: 供一次加载的磁带或磁盘,通常由若干个作业组装成,在处理中使用一组相同的系统软件 批作业处理:对批作业中的每个作业进行相同的处理 从磁带读入用户作业和编译链接程序,编译链接用户作业,生成可执行程序;启动执行;执行结果输出
批处理系统 经历了两个阶段 Simple batch systems,单道批处理系统 Multiprogramming systems,多道批处理系统
单道批处理系统 输入设备: 输出设备: Operator BATCH similar jobs to speed up processing Card readers, tape drives 输出设备: Line printers, card punches and tape drives Operator BATCH similar jobs to speed up processing User VS. operator Compare to : Manual system Monitor(OS), load program and execute Always resident in memory FIFO: Transfer control automatically from one job to the next Only One Job in Memory at a time
单道批处理系统的工作过程 处理过程(图) 特征 监督程序(monitor) 系统对作业的处理都是成批进行的、且内存中始终只保持一道作业。 批处理系统的引入是为了提高系统资源的利用率和吞吐量 特征 自动性、顺序性、单道性
单道批处理系统的处理流程 把下一个作业 的源程序转换 为目标程序 还有下一 个作业? 开始 是 否 源程序 有错吗? 停止 是 否 运行目标程序 装配目标程序
单道程序运行情况 用户程序 监督程序 I/O操作 I/O中断请求 I/O中断请求 启动I/O I/O完成 启动I/O I/O完成 结束中断 t1 t2 t3 t4 t5 t6 t7 t8
单道批处理系统分析 Analysis 引入的新技术 Off-line I/O:脱机I/O Serial Card reader: Jobs execute one by one Mechanical I/O device: poor speed CPU: thousands of intructions/sec VS. Card reader: 20 cards/sec CPU is often idle CPU utilization is LOW 引入的新技术 Off-line I/O:脱机I/O a cheaper system reads from cards into tapes 磁盘 Allowed OS to keep all jobs on a disk With direct access to several jobs Could do Job scheduling to use resources and perform task efficiently Multiprogramming(多道程序) CPU utilization(利用率)↑
脱机I/O和SPOOLing技术 脱机I/O 脱机的内涵:程序和数据都是在脱离主机控制下,由外围机控制完成的。 目的:解决人机矛盾和CPU与I/O设备之间速度不匹配的矛盾 时间:50年代末 方法:利用低速的外围机进行纸带(卡片)磁带(磁盘) 脱机的内涵:程序和数据都是在脱离主机控制下,由外围机控制完成的。
脱机I/O示意图 磁盘 输入设备 外围机 磁盘 磁盘 主机 磁盘 外围机 输出设备
SPOOLing技术 1961年,英国曼彻斯特大学,Atalas机 Simultaneous Peripheral Operation On-Line (同时的外围设备联机操作——假脱机技术) 基本思想: 利用磁盘作缓冲,将输入、计算、输出分别组织成独立的任务流,使I/O和计算真正并行
SPOOLing系统工作原理 作业进入到磁盘上的输入井 按某种调度策略选择几种搭配得当的作业,并调入内存 作业运行的结果输出到磁盘上的输出井 结果从磁盘上的输出井送到打印机 使用进程代替外围机
SPOOLing系统的组成示意图 预输入程序 输入井 井管理 程序 缓输出程序 输出井 输入设备 作业调度程序 运行作业 输出设备 磁盘 作业1信息 … 作业n信息 输入井 作业1结果 作业n结果 输出井 缓输出程序 井管理 程序 运行作业 输入设备 输出设备 作业调度程序
多道批处理系统 多道:系统中同时驻留多个作业 多道引入的优点: 特征 共享内存 复用CPU:当一个作业因某个原因暂停运行时,切换到另一个作业上运行 多道引入的优点: 提高CPU利用率 提高内存和I/O设备利用率 提高了系统吞吐量 特征 多道性、无序性、调度性:作业调度、进程调度
多道程序运行情况(四道时) 程序A 程序B 程序C 程序D 调度程序 表示获得CPU I/O请求 I/O完成 A完成 I/O请求 I/O完成
多道程序对操作系统的功能需求 Job Scheduling Memory management CPU scheduling How many & which jobs entered memory Memory management where & how much memory: the system must allocate the memory to several jobs. Memory protection for each job CPU scheduling Which job in memory( job pool) would get the CPU Job and CPU scheduling makes up 2-phrase of scheduling I/O routine supplied by the system. Allocation of devices.
多道批处理系统分析 When the job have to wait for some task, such as an I/O op. to complete Single Batch System: CPU idle Multiprogramming system: CPU switch to another job and execute( CPU is never idle) Advantages Higher CPU, I/O, Memory Utilization Higher system throughput Disadvantages No User interaction with computer Job time too long( why?) Simple batch system VS. Multiprogramming system 缺点:用户交互性差,调试程序困难 (无交互手段:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改) 作业平均周转时间长 短作业的周转时间显著增长
History of the OS(1965~1980,引入分时) IC circuits(集成电路) LSI,VLSI UNIX More Applications OS Multiprogramming batch systems↑ Time-sharing systems(分时系统)
Time-sharing system 分时系统 需求:User need interaction with computer Response time < 1 sec 解决方法: Share CPU by time pieces(时间片) Time-sharing( multitasking) Users share Main frame One main frame VS. Multi users & Multi terminal Time-sharing system is a logical extension of multiprogramming. 经典操作系统:MULTICS、UNIX
经典案例:UNIX 一群计算机迷 在贝尔实验室开发出UNIX 初衷:可以在一台无人使用的DEC PDP-7 小型计算机上玩星际探险游戏 Ken Thompson,Dennis Ritchie 1983年图灵奖获得者 1999年4月 美国国家技术金奖
分时系统下的工作方式 一台主机连接了若干个终端, 每个终端有一个用户在使用 交互式的向系统提出命令请求 系统接受每个用户的命令 采用时间片轮转方式处理服务请求 通过交互方式在终端上向用户显示结果 用户根据上步结果发出下道命令
分时系统的关键技术 Receive input in time(及时接收) Process in time(及时处理) 解决思路: Mutual job(交互作业) always in memory Time pieces 分时系统的特征 多路性、独立性、及时性、交互性
分时系统的设计目标 分时操作系统所追求的设计目标: 响应时间: 影响响应时间的因素: 及时响应,其依据是响应时间 从终端发出命令到系统给予回答所经历的时间 影响响应时间的因素: 机器处理能力 请求服务的时间长短 系统中连接的终端数目 服务请求的分布 调度算法(时间片的选取)
分时系统的实现 单道与分时的结合: 分时与批处理相结合: 分时与多道相结合 单道分时 原则:分时优先,批处理在后 具有前后台的分时: “前台”:需频繁交互的作业 “后台”:时间性要求不强的作业 分时与多道相结合 多道分时
History of the OS(1980~now,百花齐放) Development of Computer architecture (图) 32bits64bits Workstations and PCs Parallel processors Computer networks Cluster Special purpose computer system Types Parallel systems Real-time systems Embedded systems Distributed systems
Migration of OS Concepts and Features
实时系统 通常在一些专门的应用中,用来控制设备 这种系统往往具有及时响应的时间限制 严格 vs. 不严格 定义: 实时系统是指使计算机能及时响应外部事件的请求,在规定的严格时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作的操作系统 按领域分类: 第一类:实时过程控制 第二类:实时通信(信息)处理
实时任务的分类 按任务执行是否呈现周期性来划分 根据对截止时间的要求来划分 实时操作系统追求的设计目标: 周期性的,有规律; 非周期性的,无规律,但有截止时间 开始截止时间 vs. 完成截止时间 根据对截止时间的要求来划分 硬实时任务 vs. 软实时任务 实时操作系统追求的设计目标: 满足实时性要求: 对外部请求在严格时间范围内作出反应 高可靠性
实时系统的实现和应用 硬实时系统:Hard real-time system 软实时系统:Soft real-time system Secondary storage limited or absent, data stored in short-term memory, or read-only memory (ROM) Conflicts with time-sharing systems, not supported by general-purpose operating systems 软实时系统:Soft real-time system Limited utility in industrial control or robotics Useful in applications (multimedia, virtual reality) requiring advanced operating-system features 典型:VxWorks、QNX、RTEMS
实时系统与批处理系统和分时系统的区别 专用系统:许多实时系统是专用系统,而批处理与分时系统通常是通用系统 实时控制:实时系统用于控制实时过程,要求对外部事件的迅速响应,具有较强的中断处理机构 高可靠性:实时系统用于控制重要过程,要求高度可靠,具有较高冗余(如双机系统) 事件驱动和队列驱动:实时系统的工作方式:接受外部消息,分析消息,调用相应处理程序进行处理。
实时、分时的比较 多路性:相同 独立性:相同 及时性:实时系统要求更高 交互性:分时系统交互性更强 可靠性:实时系统要求更高
到目前为止,介绍了三种最基本的操作系统类型 批处理系统 分时系统 实时系统 一个实际的操作系统,往往兼有上述三种基本操作系统类型的功能 下面简单介绍其他类型的操作系统
Personal-Computer Systems,个人计算机系统 Personal computers(PCs) 计算机为单用户服务 I/O devices 键盘、鼠标、显示器、打印机 PC系统所追求的设计目标是: 界面友好,使用方便(User convenience & responsiveness),有丰富的应用软件 不必过于追求CPU利用率
常见的PC system用的操作系统 OS MS-DOS OS/2 Microsoft windows … Apple Macintosh NT, 95, 98, 2000, xp, windows me, windows vista Apple Macintosh Linux …
并行系统 Parallel Systems Multiprocessor systems with more than one CPU in close communication Tightly coupled system 紧耦合系统 processors share memory and a clock; communication usually takes place through the shared memory 优点: Increased throughput Economical Increased reliability graceful degradation fail-soft systems
并行系统(Cont.) Symmetric multiprocessing (SMP,对称多处理器) Each processor runs an identical copy of the operating system. Many processes can run at once without performance deterioration. 现在的大多数通用操作系统都支持SMP,例如Linux、UNIX、Windows
Asymmetric multiprocessing 非对称多处理 Each processor is assigned a specific task; master processor schedules and allocates work to slave processors. More common in extremely large systems
Distributed Systems 分布式系统 分布式系统:处理和控制的分散 Loosely coupled system 松耦合系统 each processor has its own local memory; processors communicate with one another through various communications lines, such as high-speed buses or telephone lines Advantages of distributed systems Resources Sharing 资源共享 Computation speed up – load sharing 负载平衡 Reliability 可靠 Communications 通信
分布式系统上的操作系统 Network Operating System 网络操作系统 provides file sharing provides communication scheme runs independently from other computers on the network Distributed Operating System 分布式操作系统 less autonomy between computers gives the impression there is a single operating system controlling the network 单一映像
Embedded System 嵌入式系统是在各种设备、装置或系统中,完成特定功能的软硬件系统 它们是一个大设备、装置或系统中的一部分, 这个大设备、装置或系统可以不是“计算机” 通常工作在反应式或对处理时间有较严格要求环境中 由于它们被嵌入在各种设备、装置或系统中,因此称为嵌入式系统 嵌入式系统具有最广泛的应用
经典:VxWorks、嵌入式Linux系列、RTEMS、WindowsCE、PalmOS 嵌入式操作系统与通用操作系统有很大不同 Small size、Low power Special environment, special function 开发方式也不同 交叉开发 Host, simulator VS. target 经典:VxWorks、嵌入式Linux系列、RTEMS、WindowsCE、PalmOS
作业: 阅读至少2本操作系统相关书籍,给出这些书中关于操作系统的定义,要列出出处。 阅读至少2本操作系统相关书籍,阐明操作系统的公共设计目标和某些操作系统特有的设计目标,要列出出处。 阅读至少2本操作系统相关书籍,阐明操作系统的作用,要列出出处。 操作系统的基本类型是哪三种?他们的关键技术有哪些?
上机实践一 安装虚拟机 在虚拟机上安装Linux操作系统,版本自选 在虚拟机上安装Windows操作系统,版本自选