微内核结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
的结构,使用相应的结构设计方法将系 统逐步地分解、抽象和综合,使操作系 统结构清晰、简单、可靠、易读、易修 改,而且使用方便,适应性强
14
几种常见的操作系统结构
简单结构 层次化结构 单(宏)内核结构 微内核 模块(Modules) 虚拟机
信息等
11
系统调用、API和C库
应用编程接口(API)其实是一组函数定义,这些函 数说明了如何获得一个给定的服务;而系统调用 是通过软中断向内核发出一个明确的请求,每个 系统调用对应一个封装例程(wrapper routine,唯 一目的就是发布系统调用)。一些API应用了封 装例程。
API还包含各种编程接口,如:C库函数、 OpenGL编程接口等
9
为什么需要系统调用
系统调用是内核向用户进程提供服务的 唯一方法,应用程序调用操作系统提供 的功能模块(函数)。
用户程序通过系统调用从用户态(user mode)切换到核心态(kernel mode), 从而可以访问相应的资源。这样做的好 处是:
为用户空间提供了一种硬件的抽象接口, 使编程更加容易。
出错检测 – 通过探测在CPU与内存硬件中, 在I/O设备中,或在用户程序中的错误,确保 正确运算
资源分配- 把资源分配给多个用户或多个同时 运行的作业
计帐- 跟踪和记录用户对资源的使用,用于帐 单和统计
保护 - 确保对资源的所有访问均在控制中
4
操作系统的用户界面(接口)
操作系统与用户接口 命令接口Command Interface 程序接口Program Interface (系统调用)
系统调用的实现是在内核完成的,而用户态的函 数是在函数库中实现的
调用printf() 应用程序
c库中的printf() c库中的write() C库
sys_write()系统调用 内核
12
操作系统的设计
操作系统设计有着不同于一般应用系统设计 的特征: 复杂程度高 研制周期长 正确性难以保证 最早Uinx是1400行代码; Windows xp有4000万行代码; fedroa core有2亿多行代码,Linux kernel 3.10有1700万行代码。
解决途径: 良好的操作系统结构 先进的开发方法和工程化的管理方法 (软件工程) 高效的开发工具
13
操作系统的设计考虑
功能设计:操作系统应具备哪些功能 算法设计:选择和设计满足系统功能的
算法和策略,并分析和估算其效能 结构设计:选择合适的操作系统结构 按照系统的功能和特性要求,选择合适
Consider the ReadFile() function in the Win32 API—a function for reading from a file
A description of the parameters passed to ReadFile() HANDLE file—the file to be read LPVOID buffer—a buffer where the data will be read into and written from DWORD bytesToRead—the number of bytes to be read into the buffer LPDWORD bytesRead—the number of bytes read during the last read LPOVERLAPPED ovl—indicates if overlapped I/O is being used
有利于系统安全。 有利于每个进程度运行在虚拟系统中,
接口统一有利于移植。
10
系统调用的类型
进程控制:结束,中止,装入,执行,创建、终止进程等 文件管理:创建文件,删除文件,打开,关闭文件等 设备管理:请求设备,释放设备,读、写、重定位设备等 信息维护:读取时间或日期、设置时间或日期等 通信:创建、删除通信连接,发送、接收消息,传递状态
MacOS、OS/2、WINDOWS、Linux等
程序接口
系统调用和 API的区别?
系统调用( System Calls)、API
6
系统调用
系统调用提供了进程与操作系统之间的接口 这些调用通常以汇编语言指令的形式提供 有些语言(如C, C++和Perl)已经取代了汇编 语言而直接用于系统编程
操作系统结构
主讲教师:夏莹杰
xiayingjie@
1
内容 操作系统服务 用户与操作系统接口 系统调用 操作系统结构
2
操作系统服务
用户接口User Interface 命令行接口Command-Line Interface (CLI), 图形用户接口Graphics User Interface (GUI) 批处理 Batch
向操作系统传递参数通常用三种方法 通过寄存器来传递参数
参数数量可能会比寄存器多
将参数存放在内存的块或表中,并将块的地址 作为参数传递给寄存器
指针
将参数放在堆栈中,并通过操作系统弹出堆栈
不限制所传递参数的数量或长度
7
参数作为表传递
8
Example of Standard API
命令接口 命令行用户接口,文本界面 图形用户接口
5
操作系统的用户界面(接口)
命令行用户界面(Command line User Interfinux、UNIX
图形用户界面(Graphic User Interface GUI)
鼠标输入
程序执行 - 调入一个程序进入内存并运行之 的系统能力
I/O操作 - 由于用户程序不能直接执行I/O操 作,操作系统必须提供完成I/O操作的手段
文件系统操作 – 程序能够读、写、创建和删 除文件
3
操作系统服务
通信 - 运行的进程间在同一计算机或由网络连 接的不同系统中交换信息。通过共享存储器 或消息传递实现
14
几种常见的操作系统结构
简单结构 层次化结构 单(宏)内核结构 微内核 模块(Modules) 虚拟机
信息等
11
系统调用、API和C库
应用编程接口(API)其实是一组函数定义,这些函 数说明了如何获得一个给定的服务;而系统调用 是通过软中断向内核发出一个明确的请求,每个 系统调用对应一个封装例程(wrapper routine,唯 一目的就是发布系统调用)。一些API应用了封 装例程。
API还包含各种编程接口,如:C库函数、 OpenGL编程接口等
9
为什么需要系统调用
系统调用是内核向用户进程提供服务的 唯一方法,应用程序调用操作系统提供 的功能模块(函数)。
用户程序通过系统调用从用户态(user mode)切换到核心态(kernel mode), 从而可以访问相应的资源。这样做的好 处是:
为用户空间提供了一种硬件的抽象接口, 使编程更加容易。
出错检测 – 通过探测在CPU与内存硬件中, 在I/O设备中,或在用户程序中的错误,确保 正确运算
资源分配- 把资源分配给多个用户或多个同时 运行的作业
计帐- 跟踪和记录用户对资源的使用,用于帐 单和统计
保护 - 确保对资源的所有访问均在控制中
4
操作系统的用户界面(接口)
操作系统与用户接口 命令接口Command Interface 程序接口Program Interface (系统调用)
系统调用的实现是在内核完成的,而用户态的函 数是在函数库中实现的
调用printf() 应用程序
c库中的printf() c库中的write() C库
sys_write()系统调用 内核
12
操作系统的设计
操作系统设计有着不同于一般应用系统设计 的特征: 复杂程度高 研制周期长 正确性难以保证 最早Uinx是1400行代码; Windows xp有4000万行代码; fedroa core有2亿多行代码,Linux kernel 3.10有1700万行代码。
解决途径: 良好的操作系统结构 先进的开发方法和工程化的管理方法 (软件工程) 高效的开发工具
13
操作系统的设计考虑
功能设计:操作系统应具备哪些功能 算法设计:选择和设计满足系统功能的
算法和策略,并分析和估算其效能 结构设计:选择合适的操作系统结构 按照系统的功能和特性要求,选择合适
Consider the ReadFile() function in the Win32 API—a function for reading from a file
A description of the parameters passed to ReadFile() HANDLE file—the file to be read LPVOID buffer—a buffer where the data will be read into and written from DWORD bytesToRead—the number of bytes to be read into the buffer LPDWORD bytesRead—the number of bytes read during the last read LPOVERLAPPED ovl—indicates if overlapped I/O is being used
有利于系统安全。 有利于每个进程度运行在虚拟系统中,
接口统一有利于移植。
10
系统调用的类型
进程控制:结束,中止,装入,执行,创建、终止进程等 文件管理:创建文件,删除文件,打开,关闭文件等 设备管理:请求设备,释放设备,读、写、重定位设备等 信息维护:读取时间或日期、设置时间或日期等 通信:创建、删除通信连接,发送、接收消息,传递状态
MacOS、OS/2、WINDOWS、Linux等
程序接口
系统调用和 API的区别?
系统调用( System Calls)、API
6
系统调用
系统调用提供了进程与操作系统之间的接口 这些调用通常以汇编语言指令的形式提供 有些语言(如C, C++和Perl)已经取代了汇编 语言而直接用于系统编程
操作系统结构
主讲教师:夏莹杰
xiayingjie@
1
内容 操作系统服务 用户与操作系统接口 系统调用 操作系统结构
2
操作系统服务
用户接口User Interface 命令行接口Command-Line Interface (CLI), 图形用户接口Graphics User Interface (GUI) 批处理 Batch
向操作系统传递参数通常用三种方法 通过寄存器来传递参数
参数数量可能会比寄存器多
将参数存放在内存的块或表中,并将块的地址 作为参数传递给寄存器
指针
将参数放在堆栈中,并通过操作系统弹出堆栈
不限制所传递参数的数量或长度
7
参数作为表传递
8
Example of Standard API
命令接口 命令行用户接口,文本界面 图形用户接口
5
操作系统的用户界面(接口)
命令行用户界面(Command line User Interfinux、UNIX
图形用户界面(Graphic User Interface GUI)
鼠标输入
程序执行 - 调入一个程序进入内存并运行之 的系统能力
I/O操作 - 由于用户程序不能直接执行I/O操 作,操作系统必须提供完成I/O操作的手段
文件系统操作 – 程序能够读、写、创建和删 除文件
3
操作系统服务
通信 - 运行的进程间在同一计算机或由网络连 接的不同系统中交换信息。通过共享存储器 或消息传递实现