1.为什么要学习操作系统?
需要总体上掌握系统设计
操作系统包括了所有软件设计/实现问题,资源共享/管理、安全和身份验证、灵活性,健壮性、友好界面设计
存在人们意识不到的大量“操作系统”
嵌入式系统(PDA、手机-WP7,Android、机顶盒等)
应用系统中的小操作系统(MINI-OS)
日常生活中并不总是使用Windows系列的操作系统(Unix、Linux、Apple Macintosh、IBM OS/2等)
涉及到计算机科学的很多领域:
计算机体系结构/硬件
软件设计
程序设计语言
数据结构
算法
抽象
2.操作系统的目的/目标
执行用户程序并使用户问题更易解决。
以一种有效的方式使用资源(有效性--系统管理人员的观点)。
使计算机系统更易于使用(方便性--用户的观点)。
采用新的OS结构,易于功能的增、删、改(可扩充性)。
要求统一开放的环境,各种类型的计算机硬件系统,出自不同的厂家,能通过网络集成并能够正确、有效地协同工作,实现应用程序的移植(开放性)。
3.计算机系统的组成
1.计算机系统的组成
硬件系统(裸机):CPU、存储器(主存、辅存)、I/O、I/O控制系统
软件系统:系统软件、应用软件
系统软件:管理计算机本身的操作。如操作系统、编译系统
应用软件:提供给用户进行解题。如,科学计算、事务管理
2.计算机系统的层次结构
4.操作系统的作用
OS作为用户与计算机硬件系统之间的接口
命令方式
系统调用方式
图形、窗口方式
OS作为计算机系统资源的管理者
管理对象包括:CPU、存储器、外部设备、信息(数据和软件);
管理的内容:资源的当前状态(数量和使用情况)、资源的分配、回收和访问操作,相应管理策略(包括用户权限)……
OS实现了对计算机资源的抽象
在裸机上添加:设备管理、文件管理、存储管理(针对内存和外存)、处理机管理(针对CPU);
即OS用作扩充机器 (extended machine)/虚拟机(virtual machine)。
5.操作系统的基本特征
并发(concurrence)
共享(sharing)
虚拟(virtual)
异步性(asynchronism)
1、并发
宏观上:多道程序同时在执行
微观上:任何时刻只有一道程序在执行,即微观上多道程序在CPU上轮流(交替)执行(单机)
并行(parallel): 与并发相似,指多道程序在同一时刻执行,但需多个硬件支持
程序和进程:在多道程序系统中,程序不能独立运行,更不能和其它程序并发执行。引入进程的目的,就是为了使多个程序并发执行。
进程是OS中拥有资源并独立运行的基本单位。引入线程后,把进程作为分配资源的基本单位,把线程作为独立运行和独立调度的基本单位,进一步提高系统的并发性。
2、共享
指系统中的资源不再为某道程序所独占,而是供多道程序共同使用。
资源共享方式:互斥共享方式、同时访问方式
并发和共享是操作系统的两个最基本的特征,二者互为存在条件:
资源的共享是以程序(进程)的并发执行为条件。
程序的并发执行也以资源的共享为条件。
3、虚拟
通过某种技术把一个物理实体映射为若干个对应的逻辑实体——分时(时分复用技术)或分空间(空分复用技术)。
虚拟是操作系统管理系统资源的重要手段,可提高资源利用率。如:虚拟处理机(分时)、虚拟设备(分时)、虚拟磁盘(分空间)、虚拟存储器(分空间、分时)
4、异步
也称不确定性,指进程在执行中,其执行时间、顺序、向前推进的速度和完成的时间等都是不可预知的。
只要在OS中配置有完善的进程同步机制,且运行环境相同,作业经多次运行都会获得完全相同的结果。所以,异步运行方式是允许的,是OS的一个重要特征。
6.操作系统的功能
处理机管理、存储器管理、设备管理、文件管理、用户接口
1、处理机管理的功能
处理机管理的主要任务:
是对处理机进行分配
对处理机运行进行有效的控制和管理
注:处理机的分配和运行以进程为基本单位,因此对处理机的管理可归结为对进程的管理
处理机管理的功能
- 进程控制
- 进程同步
- 进程通信
- 调度
2、存储器管理的功能
主要任务:
- 为多道程序的运行提供良好的环境
- 方便用户使用存储器
- 提高存储器的利用率
- 从逻辑上扩充内存
功能:
- 内存分配(静态分配、动态分配)
- 内存保护
- 地址映射
- 内存扩充
3、设备管理功能
- 完成用户提出的I/O请求
- 为用户分配I/O设备
- 提高I/O设备的利用率及速度
- 方便用户使用I/O设备
- 缓冲管理
- 设备分配
- 设备处理
- 虚拟设备
4、文件管理功能
主要任务
- 对用户文件和系统文件进行管理
- 方便用户使用文件
- 保证文件的安全性
- 文件的读、写管理和保护
- 文件存储空间的管理
- 目录管理
5、OS与用户接口管理的功能
主要任务:
方便用户使用操作系统
功能:
用户接口(联机用户接口-命令方式、图形用户接口,脱机用户接口)
程序接口(系统调用)
7.操作系统的结构设计
操作系统的结构设计经历了以下几代:
- 无结构操作系统
- 模块化结构OS
- 分层式结构OS
客户/服务器模式
面向对象的程序设计
微内核OS结构