第3章-用户界面.pptVIP

  • 1
  • 0
  • 约7.68千字
  • 约 37页
  • 2016-08-21 发布于重庆
  • 举报
第3章-用户界面

21 应用程序如何调用操作服务功能 ? 采用统一进管方式 —— 系统提供 访管指令、访管中断 ? 显示一个 字符串 读文件 应用程序 j ? read( ); ? 操作系统统功能模块 操作系统的用户界面 —— 系统功能调用 22 访管中断 当处理机执行到访管指令时就发生中断,该中断称为访管中断,它表示正在运行的程序对操作系统的某种需求。 操作系统提供实现各种功能的例行子程序,其中的每一个功能对应访管指令的一个功能号。举例如下: svc 0 显示一个字符 svc 1 打印一个字符串 ? ? 操作系统的用户界面 —— 系统功能调用 23 a1 a0 ┇ ai 例行子程序 入口地址表 A+0 A+1 ┇ A+i 保护现场; 取n值; 按n值转移; ? 恢复现场; 访管中断 处理程序 ? svc i ? 用户程序 + A Sub m am 例行子程序 Sub 0 Sub 1 Sub i ┇ a0 a1 ai ┇ 操作系统的用户界面 —— 系统功能调用 2. 系统功能调用的实现 24 3. Linux系统功能调用的过程 在Linux系统中,系统调用通过异常类型实现; 当执行了int 0x80指令而发生的软件中断; 系统自动将用户态切换为核心态来处理该事件,执行自 陷处理程序(系统调用处理程序)。 操作系统的用户界面 —— 系统功能调用 25 ? abc(); ? abc(); { ? syscall; ? } system_call: ? sys_abc ? SYSEXIT sysabc() { ? ? } 用户态 核心态 用户程序 系统调用 在libc标准库 中的封装例程 系统调用 处理程序 系统调用 服务例程 系统功能调用图示 操作系统的用户界面 —— 系统功能调用 26 int main() { ? getuid(); ? } int getuid(void) { long_res; ? int $0x80; ? } ENTRY(system_call) pushl % esx SAVE_ALL GET_CURRENT(%ebx) ? call sys_getuid16 ? RESTORE_ALL asmlinkage long sys_getuid16(void) { return high2lowuid (current_uid); } 用户程序 系统调用处理程序 标准C库 内核例程 系统功能调用的例——getuid系统调用过程 操作系统的用户界面 —— 系统功能调用 27 作业、作业步的概念 用户程序的处理步骤以及个步骤之间的关系 静态连接和动态链接的区别 操作系统提供哪两个接口,使用场合 举例说明实际操作系统的用户界面 系统调用的概念及实现方法 操作系统的用户界面 —— 小结 第 3 章 操作系统的用户界面 操作系统的用户界面 系统初启和系统生成 应用程序的处理 用户界面 系统功能调用 1 操作系统的用户界面 —— 主要内容 2 1. 操作系统的初启 系统引导的任务 将操作系统的必要部分装入主存并对系统进行初始化工作,最终使系统处于命令接收状态。 操作系统的用户界面 —— 系统初启和系统生成 3 系统引导的方式 独立引导方式(滚雪球方式) OS核心文件存储在系统本身的存储设备中,由系统自己将OS核心程序读入主存并运行,建立一个操作环境。 适用于微机和大多数系统 辅助下装方式 OS主要文件不放在系统本身的存储设备中,在系统启动后执行下装操作,从另外的计算机系统中将操作系统常驻部分传送到该计算机中,使它形成一个操作环境。 适用于多计算机系统、由主控机与前端机构成的系统以 及分布式系统。 操作系统的用户界面 —— 系统初启和系统生成 4 2

文档评论(0)

1亿VIP精品文档

相关文档