- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统东南大学滕至阳chapt中er2
* 第二章 作业管理 2.1 什么叫作业 ◆用户交给计算机做的工作称为作业 ◆作业由程序、数据、作业说明书3部分组成 ◆批处理作业和交互式作业 ◆脱机是批处理作业的主要特征 ◆交互式作业以联机为主要特征 第二章 作业管理 2.2 操作系统提供的用户界面 ◆界面有时又称为接口 ◆操作系统提供程序界面、联机用户界面、脱机用户界面 2.2.1 程序界面 ◆它由一组系统调用命令(简称系统调用或广义指令或访 管指令)组成。每条系统调用命令都对应一个由操作系统设计者事先编制好的、能完成某些特定功能的例行程序 ◆系统调用在程序一级上为用户提供支持,所以称为程序界面 2.2.2 UNIX系统调用执行过程 第二章 作业管理 ◆执行系统调用例行程序模块时涉及到处理机运行状态的改变:从用户态转到核心态,执行完例行程序后再返回用户态。UNIX的系统调用命令是通过中断机构“陷入”(trap)操作系统核心。 (图2-1 图2-2) 数据段 Trap ⅩⅩ 参数 1 参数 2 程序正文段 Trap ⅩⅩ 参数 1 参数 2 返回处 程序正文段 Trap 00 指针 返回处 ┇ ┇ ┇ ┇ (a) 直接自带参数 (b) 间接自带参数 图2-1 自带参数的两种形式 图2-2 编号 0 1 2 3 4 63 自带参数个数 例行程序入口地址 0 nullsys 0 renit fork 2 write 2 read 0 ┇ nosys read ┇ 第二章 作业管理 ◆由键盘命令和屏幕命令组成。键盘命令是由联机用户在 交互式终端上通过键盘键入的命令 ◆屏幕命令的输入主要是靠鼠标器的点击,拖曳,移动 2.2.3 联机用户界面 2.2.4 键盘命令执行过程 ◆“启动”终端处理程序中的命令解释程序 ◆终端处理进程转回键盘监督程序,等待后续命令 的键入,如此循环直到终端被注销 第二章 作业管理 ◆首先键入一个完整的命令 第二章 作业管理 2.2.5 屏幕命令执行过程 图2-3 Windows 95下多个消息队列的分派 // Start of fragment… // Acquire and dispatch messages until a WM_QUIT message is received. while (GetMessage(msg, // Message structure NULL // Handle of window receiving the message 0, // Lowest message to examine 0)){ // Highest message to examine if (!TanslateAccelerator (msg.hwnd, hAccelTable, msg)) { TranslateMessage(msg); // Translates virtual key codes DispatchMessage(msg); // Dispatches message to window } } //…end of fragment // Start of fragment… switch (message){ case WM_COMMAND: // Message:command from application menu #if defined (_WIN32) wmId =LOWORD(uParam); wmEvent=HIWORD(uParam); #else wmId =uParam; wmEvent=HIWORD(lParam); #endif switch (wmId) { case IDM_ABOUT:
文档评论(0)