第2章 操作系统结构.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 操作系统结构

操作系统概念 第二章 操作系统结构 本章主要内容 操作系统服务 操作系统的用户界面 系统调用 系统调用类型 系统程序 系统结构 系统设计与实现 虚拟机 系统生成 2.1 操作系统服务 一组操作系统服务提供对用户很有用的函数: 用户界面:几乎所有的操作系统都有 UI 命令行 (CLI), 图形用户界面 (GUI), 批处理 程序执行: OS 必须能将程序装入内存并运行程序, 结束程序, 可能是正常或非正常结束 (指明错误) I/O 操作: 运行程序可能需要 I/O, 这些可能涉及文件或 I/O 设备。 文件系统操作:文件系统特别重要。 程序需要 r w, create ,delete, search 文件, 列出文件信息,访问权限管理。 2.1 操作系统服务 一组操作系统服务提供对用户很有用的函数: 通信: 进程间可能交换信息, 在同一个计算或通过网络在不同的计算机之间 。 通信可以通过共享内存或消息传递 (消息包通过 OS移动) 错误检测 : OS 需要知道可能发生的错误 可能发生在 CPU ,内存硬件, I/O 设备,用户程序; 对于每类错误, OS 应该采取合适的动作以确保正确和一致的计算; 调试工具可以在很大程度上加强用户和程序员有效使用系统的能力。 2.1 操作系统服务 一组操作系统服务提供对用户很有用的函数: 资源分配:当同时有多个用户或多个作业运行时,系统必须为他们每一个分配资源。 有的资源 (如 CPU周期, 主存 和文件存储) 可能需要特别的分配代码; 其它资源 (如 I/O 设备) 可能需要通用的请求和释放代码。 统计:需要记录哪些用户使用了多少和什么类型的资源。 2.1 操作系统服务 一组操作系统服务提供对用户很有用的函数: 保护和安全:对于保存在多用户或网络连接的计算机系统中的信息, 用户可能需要控制信息的使用,并发进程之间不能相互影响。 保护: 确保所有对系统资源的存取都是可控制的; 系统安全不受外部请求影响, 也包括保护外部设备不受非法存取。 如果一个系统需要保护和安全,那么系统中所有部分都要预防。 一条链子的强度与其最弱的链环相关。 2.2 操作系统的用户界面 命令解释程序(CLI) 允许直接命令条目。 有时在内核中实现,有时在系统程序中实现; 有时有多种风格实现:shells。 主要作用从用户取得一个命令,并执行它; 一种方法本身包含代码以执行这些命令,另一种方法是由系统程序实现大多数命令。 如果是后者,增建新的特性不需要修改 shell。 2.2 操作系统的用户界面 图形用户界面 用户友好的桌面操作界面 通常使用 鼠标、键盘和监视器; 图标代表文件,程序,目录和系统功能等; 根据鼠标指针的位置,不用按键引起不同的动作,提供信息,光标,执行功能,打开目录(常说的文件夹); 在 Xerox PARC上首次实现。 许多系统包括 CLI 和 GUI 接口 微软的 Windows 是GUI,带有 CLI “命令” 外壳; 苹果的Mac OS X 作为 “Aqua” GUI 界面,带有UNIX 内核 底层和外壳; Solaris是CLI,带有可选择的GUI 界面 (Java Desktop, KDE) 2.3 系统调用 系统调用提供了进程与操作系统之间的接口 这些调用通常以汇编语言指令的形式提供; 有些语言(如C, C++和Perl)已经取代了汇编语言而直接用于系统编程。 例子: 从一个文件读取数据并复制到另一个文件。 2.3 系统调用(cont.) 系统调用的实现 每个系统调用关联一个数(系统调用表编号); 查询系统调用表,以定位预定函数; 调用预定函数返回状态和任意返回值; 系统调用的实现对调用者是透明的。 API方式 程序存取系统资源大多数通过高级应用程序接口 (API) ,而不是直接系统调用。 有三类常用的 API: 适用于Windows 的Win32 API; 适用于POSIX系统的POSIX API,几乎包括所有 UNIX、 Linux和 Mac OS X版本); 运行于 Java 虚拟机 (JVM) 的Java API。 标准API例子 考虑 ReadFile() 函数:Win32 API,从一个文件中读取数据。 标准API例子(cont.) ReadFile()传递的参数 HANDLE file : 所读取的文件; LPVOID buffer: 读进\写出的数据缓冲; DWORD bytesToRead: 将要读入缓冲区的字节数; LPDWORD bytesRead : 上次读操作读的字节数; LPOVERLAPPED ovl :提示是否使用 重叠 I/O 。 API – 系统调用 – OS 之间的关系 系统调用的参数传递 向操作系统传递参数通常用三种方法 通过寄存器来传递参数

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档