170322操作系统定义、功能、位置与历史
一.什么是操作系统
1.1操作系统(英语:Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
1.2操作系统是控制和管理计算机硬件资源(CPU、内存、外存、输入输出设备等物理资源)和软件资源(以文件形式保存在外存上的程序和数据等信息)、合理地组织计算机工作流程以及方便用户使用计算机的一个大型程序。
1.3(1)OS内核:500万行代码级,100本,1000页/本,50行/页。
(2)MINIX(微内核设计的类UNIX系统)。
①内核(1600行C代码、800行汇编代码。
②I/O设备驱动(增加2900行C代码)也在内核中。
③文件系统(5100行C代码)与内存管理(2200行C代码)作为两个独立的用户进程运行。AST-P408)
(3)用户程序(GUI、库及其它应用软件)10-20倍
1.4作为扩展机器的操作系统
(1)为程序员、应用程序提供一种简单的、高度抽象的处理(环境和条件)
①抽象一:有关的定义和实现;抽象二:用它解决问题
进程:执行程序的抽象。多道下,谁执行who、执行到哪里where、什么时间执行when、怎样执行how、有没有改变?…
内存:虚拟内存
文件:抽象为open/close/read/write。对磁盘记录的信息片段的抽象。隐藏物理上的行为(旋转、移动臂、磁头、柱面、扇区、传送、缓冲、间隙、格式…)
设备抽象
②隐藏硬件(硬件接口复杂、不一致、难看)
③不涉及“用户界面”,只关注“内核”
(2)示例1:CMOS操作??
在计算机领域,CMOS常指保存计算机基本启动信息(如日期、时间、启动设置等)的芯片。
① 显示日期信息:
cmd->debug
-o 70 7 //操作7单元
-I 71 //显示日期
②显示日期信息汇编代码:
mov al
out 70,al //操作7单元
in al,71 //读取日期
(3)示例2:删除一个文件??
1.5 作为资源管理者的操作系统
(1)CPU、内存及其它外设
(2)多道程序设计技术
①一台打印机,同时又三个文件要打印
②多个用户的系统或网络
(3)操作系统的主要任务是记录哪个程序在使用什么资源,对资源请求进行分配,评估使用代价,并且为不同的程序和用户调解互相冲突的资源请求。
(4)两种资源管理来实现多路共享资源(multiplexing)
①在时间上的复用和共享
一个CPU,按时间不同分给不同的进程(不等完全执行完)。一段时间内,CPU分小片给不同的进程使用。
②在空间上的复用、分享和共享
一个内存分给多个程序使用,使得每个程序都可同时进入内存。
一个磁盘分给多个文件使用
二.操作系统功能(概念)
2.1 进程与线程(第2章,第6章)
2.2 存储器(内存)管理(第3章)
2.3 文件系统(第4章)
2.4 输入/输出(外部设备)管理(第5章)
三.操作系统所处的位置
(1)操作系统处于内核态
(2)应用级程序员对功能和操作系统进行使用
(3)计算机系统的组成要素(操作系统是系统软件)
四.操作系统的历史
4.1
4.2单道与多道批处理系统内存
4.3多道程序系统
(1)示例一:
有两个作业A和B,它们每个的工作序列都是占用CPU一秒种,然后I/O一秒种,交替进行60次后结束运行。
单道系统时作业的运行:120s?
多道系统时作业的运行:61s?
4.4 分时系统(timesharing)
(1)CTSS(兼容分时系统),MIT
MULTICS,Honeywell
PL/I编程语言
小型机(minicomputer),DEC PDP-7,DEC PDP-11
UNIX,Ken Thompson。DEC PDP-7上开发(69年贝尔实验室退出MULTICS,随后开发UNIX)
MINIX, Tanenbaum
Linux,Linus Torvalds
开源(Open Source)
(2)分时操作系统工作过程示意图
4.5个人计算机(PC)
Intel 8080
CP/M,Control Program for Microcomputer,Gray Kildall
Zilog Z80
Bill Gates,BASIC
DOS,Tim Paterson
MS-DOS
IBM PC/AT,80286
XENIX
GUI,Doug Engelbart,Xerox PARC
APPLE,Steve Jobs,Macintosh
Windows,WinNT,Win3.2,Win95,Win98,Win2000,WinXP,Vista
David Cutler,WinNT,DEC,VAX VMS
UNIX,FreeBSD,XWindows,Gnome,KDE
4.6 网络操作系统和分布式操作系统
(1)网络操作系统与单处理器的操作系统没有本质区别
(2)分布式系统允许一个应用在多台处理器上同时运行
4.7 批处理操作系统 引自陈向群视频8
(1)用户将作业(job)交给系统操作员
(2)系统操作员将许多用户的作业组成一批作业,输入到计算机系统中,在系统中形成一个自动转接的连续的作业流
(3)启动操作系统
(4)系统自动、依次执行每个作业
(5)由操作员将作业结果交给用户
作业:程序、数据、控制信息等。
单道批处理:一次执行一个作业。
多道批处理:多个作业同时执行。