1、操作系统初步认识
桌面常见四大操作系统:windows、Linux、Mac、UNIX
windows
最早版本:windows 1.0
- 微软公司首次在PC上尝试图形界面,1985发型
- 基于MS-DOS
后期版本:win XP
Mac操作系统
- 基于Unix内核的图形化操作系统
- 苹果产品专属操作系统
Linux之RedHat(小红帽)
- 以GNU/Linux为核心
基本功能
没有安装操作系统的计算机可以运行程序(如:BIOS)
但普通用户无法正常使用。
- 提供操作界面
- 控制程序运行
- 管理系统资源
- 配置系统参数
- 监控系统状态
- 工具软件集合
2、操作系统功能和定义
功能:
进程管理(CPU管理)
windows环境下多个“进程”在并发运行
- 进程控制:创建、暂停、唤醒、撤销
- 进程调度:调度策略、优先级
- 进程通信:进程间通信
内存管理
- 内存分配
- 内存共享
- 内存保护
- 虚拟内存
设备管理
- 设备的分配和调度
- 设备无关性
- 设备传输控制
- 设备驱动
文件管理
- 存储空间管理
- 文件的操作
- 目录的操作
- 文件和目录的存取权限管理
操作系统的定义
操作系统是一个大型系统程序
- 提供用户接口,方便用户控制计算机
- 负责为应用程序分配和调度软硬件资源,并控制与协调应用程序并发活动,帮助用户存取和保护资源
3、操作系统的发展
两大动力:用户需求提升和硬件技术进步
计算机硬件发展的四个阶段
- 电子管时代
- 晶体管时代
- 集成电路时代
- 大规模集成电路时代
在速度、容量、稳定性、可靠性都得到逐步提高
操作系统发展的四个阶段
- 手动操作(无操作系统)
- 单道批处理系统
- 多道批处理系统
- 分时系统
手动操作(没有操作系统)
时代:电子管时代
结构特点:
- 硬件:电子管、接线面板(按钮/开关)
- 程序:二进制程序,打孔:纸带和卡片
使用特点
- 程序准备/启动/结束:手工处理,繁琐耗时
缺点:
- 效率低(CPU有效运行时间较低)
- 用户独占
- 缺少交互
单道批处理系统
时代:晶体管时代
工作特点:
- 管理员先将多个作业输入到磁盘形成作业队列
- 操作系统依自动处理队列中的每个作业
- 程序的装入和撤出:自动完成,效率高
- 运行完毕,通知用户取结果
特点:批量,自动,单道
CPU和外设利用效率低。
多道批处理系统
定义:在内存中存放多道程序,当某道程序因为某种原因不能继续运行而放弃CPU时,操作系统便调度另一个程序投入运行。这样可以是CPU尽量忙碌,提高系统效率。
提高系统CPU利用率
提高系统吞吐量
特点:
- 多道:内存同时存放多道程序
- 并行:宏观上
- 串行:微观上
缺点:
- 作业处理时间长
- 交互能力差
- 运行过程不确定
4、分时技术与分时操作系统
硬件两大技术:
中断技术
CPU收到外部信号(中断信号)后,停止当前工作,转去处理该外部事件,处理完毕后回到原来工作的中断处(断点)继续原来的工作。
通道技术
专门处理外设与内存之间的数据传输的处理机
背景:
事物性任务的涌现
- 交互性高
- 响应快速
要求支持多任务/多用户
多终端计算机
- 高性能主机+多个中断
主机:运算,CPU+内存
终端:输入和显示
- 主机采用分时技术轮流为每个终端服务。每个终端都感觉到是“独占”主机。
分时技术
概念:
- 主机以很短的“时间片”为单位,把CPU轮流分配给每个终端使用,直到全部作业被运行完
- 由于时间片很短,在终端数量不多的情况下,每个终端都能很快重新获得CPU,使得每个终端都能得到及时响应。
- 等待周期=时间片x终端数量
特点:
- 多路调制性:多用户联机使用同一台计算机
- 独占性:用户感觉独占计算机
- 交互性:及时响应用户的请求
UNIX
第一个实用化的分时操作系统
- 第一个真正体现操作系统领域各种先进概念和技术的操作系统
革新和创造
- 实现操作系统的可移植性
- 实现了硬件无关性
- 引进了“特殊文件”(Special File)概念:把外设看作文件,实现对外设的统一管理
5、典型操作系统类型
操作系统的进一步发展(分时操作系统的衍化)
- 微机操作系统
- 多处理操作系统
- 网络操作系统
- 实时操作系统
- 嵌入式操作系统
微机操作系统
时代:大规模集成电路发展,进入PC机时代
特点:
良好的层次结构:BIOS把操作系统和硬件分隔
易学易用
实时操作系统
背景:
- 实时事务:军事,工业控制,智能仪表
- 要求:某些任务要优先紧急处理
特点:
- 强调作业完成的时限
硬实时系统:时限要求严格
软实时系统:时限要求不太严格,尽量快
嵌入式操作系统
可近似看作实时操作系统,但概念比之大。
嵌入式系统
- 软硬件可以裁剪,软硬件一体化的系统
典型嵌入式操作系统
安卓Android Linux
网络操作系统
- 普通操作系统+网络通信+网络服务
- UNIX/Linux/windows
功能:
- 透明存取
- 存取控制
实时学习操作
适合学习的小型开源操作系统
Minix OS
特点:
- 开放源代码
- MINIX=Mini UNIX :约12000行
- 微内核架构(Microkernel)
- 类UNIX操作系统
http://www.minix3.org/
注意:若源代码超过3万行,很难去掌握。
推荐学习的大型开源操作系统
Linux
最新:www.kernel.org
最好学习最早版本的。