分布式操作系统东北大学软件研究所于 戈
2002年 5月
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
2
参考书
Distributed Operating Systems?,Andrew
S.Tanenbaum,清华大学出版社,1997
分布式操作系统?,陆丽娜 等译,电子工业出版社,2000
,Modern Operating Systems》,第 2版,
Andrew S.Tanenbaum,机械工业出版社,
2002
现代操作系统?,第 1版,陈向群等译,机械工业出版社,1999
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
3
参考书
,Solaries 操作系统内核,
,Solaries编程指南,
,Linux 操作系统内核,
,Linux编程指南,
,Windows NT 操作系统内核,
,Windows NT编程指南,
操作系统回顾
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
5
0.1 计算机系统结构
0.2 操作系统概念
0.3 操作系统调用
0.4 操作系统结构
0.5 操作系统历史主要内容
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
6
0.1 计算机系统结构应用程序 Web浏览器,GIS,ERP
中间件 DBMS,httpd,CORBA,.NET
系统程序 操作系统,shell,C编译器固件 BIOS
硬件 PC机、工作站、小型机、大型机
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
7
计算机系统结构
应用程序
系统程序
硬件
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
8
硬件结构
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
9
硬件结构
一台 PC机的构件
Monitor
Bus
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
10
CPU(中央处理单元 )
(a) 三阶段管道结构
(b) 超标量( superscalar) CPU
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
11
存储器
典型存储器层次结构
– 数字为近似值
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
12
硬盘结构扇区、磁头、柱面
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
13
内存
(a) 单地址空间 ( b)多地址空间
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
14
IO中断
(a) 启动 I/O设备的步骤
(b) 中断处理步骤
(a) (b)
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
15
Pentium机系统结构
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
16
一台扩展的计算机
– 隐藏了具体的硬件细节
– 为用户提供了一台容易使用的虚拟的计算机
一个资源管理器
– 每个程序分享时间
– 每个程序分享空间
0.2 操作系统概念
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
17
进程管理
进程树( process tree)
– 进程 A 创建两个子进程,B和 C
– B 又创建三个子进程,D,E,和 F
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
18
进程调度与同步
(a) 潜在死锁 (b) 实际的死锁,
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
19
进程间通信( IPC)
连接两个进程的管道( pipe)
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
20
文件管理计算机系的文件系统结构
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
21
文件目录
( a) 在安装 (mount)floppy之前,
– 不能访问 Floppy上的文件
( b)将 floppy 安装到 b之后,
– Floppy上的文件成为文件系统的一部分
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
22
0.3 操作系统的系统调用进程管理
POSIX操作系统
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
23
文件操作
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
24
目录管理
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
25
其它的系统调用
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
26
系统调用步骤( System Call)
共 11步,完成系统调用 read (fd,buffer,nbytes)
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
27
进程管理
shell语言编写的命令执行器,
while (TRUE) { /* repeat forever */
type_prompt( ); /* display prompt */
read_command (command,parameters) /* input from terminal */
if (fork() != 0) { /* fork off child process */
/* Parent code */
waitpid( -1,&status,0); /* wait for child to exit */
} else {
/* Child code */
execve (command,parameters,0); /* execute command */
}
}
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
28
内存管理
进程的三种段,text,data,stack
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
29
文件管理
(a) 在连接之前的两个目录
(b) 在执行连接调用
link(,/usr/jim/memo”,”/usr/ast/note”)
之后的两个目录
I-node
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
30
文件管理
(a) mount之前的文件系统
mount(“/dev/fd0”,”/mnt”,0);
(b) mount之后的文件系统
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
31
Win32 API调用
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
32
0.4 操作系统结构整体式系统的结构模型
– 主过程:处理服务过程请求
– 服务过程:执行系统调用
– 实用过程:支持服务过程
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
33
层次式结构
THE操作系统结构(荷兰,E.Dijkstra)
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
34
虚拟机结构
VM/370系统 (IBM)
– 多道程序 (conversational monitor system)
– 扩展界面计算机( virtual machine monitor)
JVM(JAVA 虚拟机,SUN)
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
35
客户 /服务器结构微内核结构
IPC机制
内存管理
低级的进程管理和调度
低级的 IO
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
36
Operating System Structure (5)
分布式系统中的客户 /服务器( client/server)模型
– 位置透明性
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
37
0.5 操作系统发展历史
第一代 1945 - 1955
– 电子管,插件板
第二代 1955 - 1965
– 晶体管,批处理系统
第三代 1965 – 1980
– 集成电路( IC)和多道程序设计
第四代 1980 – 现在
– VLSI,个人计算机,网络操作系统
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
38
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
39
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
40
早期批处理系统
1,将卡片装入 1401机的读卡机
2,将卡片中的程序读入磁带
3,将磁带装入 7094机,完成计算
4,将磁带装入 1401机,打印结果
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
41
FMS 的 JOB结构 – 第 2代
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
42
多道程序系统 – 第 3代
– 内存中的三个作业( job)
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
43
操作系统家族
大型机操作系统 (e.g IBM OS/390)
服务器操作系统 (e.g,UNIX,NT)
多处理机操作系统
分布式操作系统
PC机操作系统 (e.g Widows)
实时操作系统 (e.g VxWorks)
嵌入式操作系统 (e.g Windows CE)
Smart card操作系统 (e.g JVM)
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
44
习题:
1,在 Windows NT上,用 C/C++编写举例的 shell程序;
2,在 Unix系统上,用 C/C++编写举例的 shell程序;
3,比较 Windows NT和 Unix中在主要调用接口上的异同点?
2002年 5月
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
2
参考书
Distributed Operating Systems?,Andrew
S.Tanenbaum,清华大学出版社,1997
分布式操作系统?,陆丽娜 等译,电子工业出版社,2000
,Modern Operating Systems》,第 2版,
Andrew S.Tanenbaum,机械工业出版社,
2002
现代操作系统?,第 1版,陈向群等译,机械工业出版社,1999
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
3
参考书
,Solaries 操作系统内核,
,Solaries编程指南,
,Linux 操作系统内核,
,Linux编程指南,
,Windows NT 操作系统内核,
,Windows NT编程指南,
操作系统回顾
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
5
0.1 计算机系统结构
0.2 操作系统概念
0.3 操作系统调用
0.4 操作系统结构
0.5 操作系统历史主要内容
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
6
0.1 计算机系统结构应用程序 Web浏览器,GIS,ERP
中间件 DBMS,httpd,CORBA,.NET
系统程序 操作系统,shell,C编译器固件 BIOS
硬件 PC机、工作站、小型机、大型机
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
7
计算机系统结构
应用程序
系统程序
硬件
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
8
硬件结构
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
9
硬件结构
一台 PC机的构件
Monitor
Bus
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
10
CPU(中央处理单元 )
(a) 三阶段管道结构
(b) 超标量( superscalar) CPU
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
11
存储器
典型存储器层次结构
– 数字为近似值
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
12
硬盘结构扇区、磁头、柱面
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
13
内存
(a) 单地址空间 ( b)多地址空间
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
14
IO中断
(a) 启动 I/O设备的步骤
(b) 中断处理步骤
(a) (b)
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
15
Pentium机系统结构
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
16
一台扩展的计算机
– 隐藏了具体的硬件细节
– 为用户提供了一台容易使用的虚拟的计算机
一个资源管理器
– 每个程序分享时间
– 每个程序分享空间
0.2 操作系统概念
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
17
进程管理
进程树( process tree)
– 进程 A 创建两个子进程,B和 C
– B 又创建三个子进程,D,E,和 F
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
18
进程调度与同步
(a) 潜在死锁 (b) 实际的死锁,
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
19
进程间通信( IPC)
连接两个进程的管道( pipe)
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
20
文件管理计算机系的文件系统结构
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
21
文件目录
( a) 在安装 (mount)floppy之前,
– 不能访问 Floppy上的文件
( b)将 floppy 安装到 b之后,
– Floppy上的文件成为文件系统的一部分
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
22
0.3 操作系统的系统调用进程管理
POSIX操作系统
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
23
文件操作
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
24
目录管理
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
25
其它的系统调用
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
26
系统调用步骤( System Call)
共 11步,完成系统调用 read (fd,buffer,nbytes)
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
27
进程管理
shell语言编写的命令执行器,
while (TRUE) { /* repeat forever */
type_prompt( ); /* display prompt */
read_command (command,parameters) /* input from terminal */
if (fork() != 0) { /* fork off child process */
/* Parent code */
waitpid( -1,&status,0); /* wait for child to exit */
} else {
/* Child code */
execve (command,parameters,0); /* execute command */
}
}
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
28
内存管理
进程的三种段,text,data,stack
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
29
文件管理
(a) 在连接之前的两个目录
(b) 在执行连接调用
link(,/usr/jim/memo”,”/usr/ast/note”)
之后的两个目录
I-node
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
30
文件管理
(a) mount之前的文件系统
mount(“/dev/fd0”,”/mnt”,0);
(b) mount之后的文件系统
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
31
Win32 API调用
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
32
0.4 操作系统结构整体式系统的结构模型
– 主过程:处理服务过程请求
– 服务过程:执行系统调用
– 实用过程:支持服务过程
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
33
层次式结构
THE操作系统结构(荷兰,E.Dijkstra)
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
34
虚拟机结构
VM/370系统 (IBM)
– 多道程序 (conversational monitor system)
– 扩展界面计算机( virtual machine monitor)
JVM(JAVA 虚拟机,SUN)
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
35
客户 /服务器结构微内核结构
IPC机制
内存管理
低级的进程管理和调度
低级的 IO
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
36
Operating System Structure (5)
分布式系统中的客户 /服务器( client/server)模型
– 位置透明性
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
37
0.5 操作系统发展历史
第一代 1945 - 1955
– 电子管,插件板
第二代 1955 - 1965
– 晶体管,批处理系统
第三代 1965 – 1980
– 集成电路( IC)和多道程序设计
第四代 1980 – 现在
– VLSI,个人计算机,网络操作系统
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
38
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
39
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
40
早期批处理系统
1,将卡片装入 1401机的读卡机
2,将卡片中的程序读入磁带
3,将磁带装入 7094机,完成计算
4,将磁带装入 1401机,打印结果
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
41
FMS 的 JOB结构 – 第 2代
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
42
多道程序系统 – 第 3代
– 内存中的三个作业( job)
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
43
操作系统家族
大型机操作系统 (e.g IBM OS/390)
服务器操作系统 (e.g,UNIX,NT)
多处理机操作系统
分布式操作系统
PC机操作系统 (e.g Widows)
实时操作系统 (e.g VxWorks)
嵌入式操作系统 (e.g Windows CE)
Smart card操作系统 (e.g JVM)
2002-5-17
东北大学软件所 于戈 第 0章 操作系统回顾
44
习题:
1,在 Windows NT上,用 C/C++编写举例的 shell程序;
2,在 Unix系统上,用 C/C++编写举例的 shell程序;
3,比较 Windows NT和 Unix中在主要调用接口上的异同点?