第02章操作系统结构20121104第2章操作系统结构

上传人:E**** 文档编号:91543239 上传时间:2019-06-29 格式:PPT 页数:23 大小:252.50KB
返回 下载 相关 举报
第02章操作系统结构20121104第2章操作系统结构_第1页
第1页 / 共23页
第02章操作系统结构20121104第2章操作系统结构_第2页
第2页 / 共23页
第02章操作系统结构20121104第2章操作系统结构_第3页
第3页 / 共23页
第02章操作系统结构20121104第2章操作系统结构_第4页
第4页 / 共23页
第02章操作系统结构20121104第2章操作系统结构_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《第02章操作系统结构20121104第2章操作系统结构》由会员分享,可在线阅读,更多相关《第02章操作系统结构20121104第2章操作系统结构(23页珍藏版)》请在金锄头文库上搜索。

1、2019/6/29,哈工大软件学院,1,讨论操作系统结构,一般包括3个方面: 操作系统所提供的服务 2.1 操作系统服务 操作系统为用户和程序员提供的接口 2.2 操作系统的用户界面 2.3 系统调用 2.4 系统调用类型 2.5 系统程序 操作系统组成部分及其相互关系 2.6 操作系统结构 2.7 虚拟机,基本内容,2019/6/29,哈工大软件学院,2,2.1 操作系统服务,操作系统服务一般包括: 用户界面:CUI、GUI 程序执行:装入程序、运行程序 I/O 操 作:底层的I/O操作(启动、读写、关闭等) 文件系统操作:创建/复制/移动/删除/检索文件/目录、 列举文件信息等 通 信:I

2、PC(进程间通信)、RPC(远程过程调用)等 错误检测:硬件错误、算术溢出、非法地址访问等 资源分配:CPU、存储器、外部设备等 统 计:用户用时记帐、资源利用率等 保护与安全:登录验证、进程越界访问、非法访问等,2019/6/29,哈工大软件学院,3,2.2 操作系统的用户界面,2019/6/29,哈工大软件学院,4,系统接口用户通过它来使用操作系统,对大多数用户来说,操作系统是一个“黑盒子”,引导告诉了我们这个盒子是怎么放入内存的?,在“打开这个盒子”之前要“了解盒子的入口”,2.2 操作系统的用户界面,2019/6/29,哈工大软件学院,5,2.2 操作系统的用户界面,2.2.1 命令解

3、释程序 命令解释程序是OS的特殊程序 DOS中的COMMAND.COM UNIX、Linux中的Shell(B-Shell、C-Shell) 命令解释程序的主要作用是获取并执行用户给定的下一条命令 内部命令、外部命令,2019/6/29,哈工大软件学院,6,命令行是怎么回事?命令是什么? 命令输入后发生了什么?,#include int main(int argc, char * argv ) printf(“ECHO:%sn”, argv1); ,gcc o output output.c,./output “hello”,命令,一段程序而已,int main(int argc, char

4、* argv) char cmd20; while(1) scanf(“%s”, cmd); if(!fork() exec(cmd); else wait(); /while(1) ,也是一段程序: shell,即/bin/sh,命令得以工作的原因: OS提供了printf,fork, exec等函数(接口),2.2 操作系统的用户界面,我们可以自己开发的命令行界面!,2019/6/29,哈工大软件学院,7,2.2 操作系统的用户界面,2.2.2 图形用户界面 DOS 中的Windows1.0-3.12 Windows中的Desktop Linux中的X-Window Mac OS X Aq

5、ua 我们自己开发的Windows Desktop,例子1,例子2,设置系统启动时自动启动自制桌面,2019/6/29,哈工大软件学院,8,使GUI工作,OS提供消息框架和相关API,GUI是怎么回事?,鼠标点击OUTPUT以后,void COutputDlg:OnOK() GetDlgItemText(IDC_EDIT1,m_outStr); FILE *fp=fopen(“d:out.txt“,“w“); fprintf(fp,m_outStr,m_outStr.GetLength(); fclose(fp); ,2019/6/29,哈工大软件学院,9,总结前述最重要的概念,用户使用计算机

6、总结:应用操作系统提供的接口编写程序;应用这些程序解决问题,命令行: 命令程序+shell+字符显示,GUI: 消息处理程序+消息框架+图形显示,应用程序: 将上述部分组成一个整体,因此:用户通过OS接口使用计算机;OS接口影响计算机的使用方式,这么重要,得起个名字: 接口表现为函数调用,又由OS提供,叫系统调用,系统调用是学习操作系统的首要任务,2.3 系统调用,2019/6/29,哈工大软件学院,10,对于指令跳转也一样 实现了隔离,怎么实现系统调用?,将内核程序和用户程序隔离比较好!,区分内核态和用户态:一种处理器“硬件设计”,当前程序执行在什么态(哪层环)?由于CS:IP是当前指令,所

7、以用CS的最低两位来表示: 0是内核态,3是用户态,访问的数据段最低2位,内核态可以访问任何数据,用户态不能访问内核数据,2.3 系统调用,当前指令段最低2位,被调用代码段级别,2019/6/29,哈工大软件学院,11,对于Intel x86,那就是中断指令int,int指令将使CS中的CPL改成0,“进入内核”,这是用户程序发起的调用内核代码的唯一方式,若用户程序想调内核代码: 写一段包含int指令的代码,系统调用的实现:,(1) 用户程序中写上一段包含int指令的代码,(2) OS写中断处理代码,获取欲调用程序的编号,(3) OS根据编号转去执行相应的代码,由谁做? 库函数!,系统调用编号

8、,2.3 系统调用,硬件提供了“主动进入内核的方法”,DOS为INT 21H,Windows2K为 2EH,Linux为080H),2019/6/29,哈工大软件学院,12,系统调用的处理过程,System Call i号系统调用,用户程序,A0,SUB0,SUB1,SUBi,SUBn,A1,Ai,An,系统调用处理子程序,取系统功能号 查入口地址表 相应入口地址,结束处理 恢复现场,A0,A1,Ai,An,保护CPU现场,陷入指令 int,系统调用陷入机构,入口地址表,2.3 系统调用,0,1,i,n,2019/6/29,哈工大软件学院,13,系统调用展开执行示例,应用程序,int main

9、( ) scanf( ); ,C库展开,int read move eax, 3 int 0x80; ,中断处理,entry (system_call) save all call sys_read3 restore all; ,内核函数,sys_read3( ) ret ,用户态,核心态,2019/6/29,哈工大软件学院,14,2.3 系统调用,系统调用号: 用寄存器eax内容指定 最多直接传递3个参数:用寄存器ebx,ecx,edx 有3种传递参数的方式: (1)直接用寄存器ebx,ecx,edx,最多3个参数 (2)指定内存块,任意多个参数,可以用ebx、 ecx、edx任意2个指定地

10、址和个数 (3)用系统栈,任意多个参数,寄存器可用可不 用(因为参数个数可放在栈内),系统调用参数传递,2019/6/29,哈工大软件学院,15,2.3 系统调用,API:Application Program Interface API是对SystemCall的封装 Win32 API 2000多个 POSIX API 100多个 Java API 10000多个 Linux2.X版本有200多个系统调用 SystemCall更底层,使用需知道更多细节 API是用SystemCall封装而成,使用方便, 程序可移植性好,API与SystemCall的区别与联系,2019/6/29,哈工大软件

11、学院,16,2.4 系统调用类型,进程控制:创建、装入、执行、终止、等待、唤醒、 内存分配与释放 文件管理:创建、删除、打开、关闭、读、写、重定 位、属性获取及设置 设备管理:请求、释放、读、写、重定位、属性获得 设置、连接与断开 信息维护:读取/设置系统数据、读取/设置时间及日 期、读取/设置进程/文件/设备等属性 通 信:创建/删除通信连接、收发消息、连接/断开远 端设备,五大类:进程控制、文件管理、设备管理、信息维护、通信,2019/6/29,哈工大软件学院,17,2.5 系统程序,文件管理:创建、删除、复制、命名、备份、格式化 等,如资源管理器等 系统维护:监测、设置、性能分析等,如:

12、安装软件, TaskManager,RegEdit,PS,LS,Kill等 程序开发支持:各类语言编辑/编译器,IDE开发环境, 数据库系统 通 信:远程登录,网上邻居,网页浏览器等,系统程序:介于操作系统与用户应用程序之间的程序,主要提供一个方便的环境,利用开发程序和执行程序,2019/6/29,哈工大软件学院,18,2.6 操作系统结构,MS-DOS层次结构,1. 简单结构:整个操作系统似乎是个单一的整体,不注重模 块的划分和接口与功能层次。典型例子:DOS,应用程序,系统驻留程序,MS-DOS设备驱动,ROM BOIS设备驱动,2019/6/29,哈工大软件学院,19,2.6 操作系统结

13、构,Linux单内核结构,用户态,系统库(函数库),应用程序,系统调用接口,模块,内核(进程管理、存储管理、文件管理、设备管理、网络管理),设备驱动,计算机硬件,核 心 态,单 内 核,2019/6/29,哈工大软件学院,20,2.6 操作系统结构,分层操作系统结构模型,2. 分层结构:整个操作系统分为若干层,至底向上层层封装,第i层只能调用0i-1层提供的函数或调用; 更严格的分层:第i层只能调用i-1层提供的函数或调用,2019/6/29,哈工大软件学院,21,操作系统服务进程,客户 进程1,客户 进程2,文件服务器,进程服务器,主存服务器,微内核(消息传递、进程调度、内存管理),计算机硬

14、件,用户 进程,用 户 态,核 心 态,客户通过微内核发送消息给文件服务器,2.6 操作系统结构,微内核结构模型,3. 微内核结构:将最基本的功能作为内核存在,主要包括最小的进程管理、内存管理和通信功能,其他功能作为系统程序或用户程序出现。,2019/6/29,哈工大软件学院,22,2.7 虚拟机,VMWare结构模型,虚拟机:是一种操作系统的特结构。首先,对硬件进行第1层抽象封装(一般是一个完整的操作系统),之后以该层为基础,再封装第二层虚拟硬件抽象,然后实现多个操作系统。,2019/6/29,哈工大软件学院,23,Windows2000系统结构,W2K-XP操作系统-结构剖析1,W2K-XP操作系统-结构剖析2,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号