第七八章内容缩减.pdf

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

回顾:程序的机器级表示与执行 int sum(int a[ ], unsigned len) sum: { … .L3: int i ,sum = 0; for (i = 0; i = len–1; i++) … movl -4(%ebp), %eax sum += a[i]; movl 12(%ebp), %edx return sum; subl $1, %edx } cmpl %edx, %eax 程序的正常执行顺序有哪两种? jbe .L3 … (1) 按顺序取下一条指令执行 (2) 通过CALL/RET/Jcc/JMP等指令跳转到转移目标地址处执行 CPU所执行的指令的地址序列称为CPU的控制流 ,通过上述两种方 式得到的控制流为正常控制流。 程序始终按正常控制流执行吗? 异常控制流 • CPU会因为遇到内部异常或外部中断等原因而打断程序的正 常控制流,转去执行操作系统提供的针对这些特殊事件的处 理程序。 • 由于某些特殊情况引起用户程序的正常执行被打断所形成的 意外控制流称为异常控制流 (Exceptional Control of Flow ,ECF )。 • 异常控制流的形成原因: – 内部异常(缺页、越权、越级、整除0、溢出等) 发生在 – 外部中断(Ctrl-C、打印缺纸、DMA结束等) 硬件层 – 进程的上下文切换 (发生在操作系统层) – 一个进程直接发送信号给另一个进程 (发生在应用软件层) 本章主要介绍发生在OS层和硬件层的异常控制流 “程序”和 “进程” 程序(program )指按某种方式组合形成的代码和数据,代码即是 机器指令序列,因而程序是一种静态概念。 进程( process )指程序的一次运行过程。更确切说,进程是具有 独立功能的一个程序关于某个数据集合的一次运行活动,因而进 程具有动态含义 。同一个程序处理不同的数据就是不同的进程 • 进程是OS对CPU执行的程序的运行过程的一种抽象。进程有自 己的生命周期 ,它由于任务的启动而创建,随着任务的完成(或 终止)而消亡,它所占用的资源也随着进程的终止而释放。 • 一个可执行目标文件(即程序)可被加载执行多次,也即,一个 程序可能对应多个不同的进程。 – 例如,用word程序编辑一个文档时,相应的用户进程就是 winword.exe ,如果多次启动同一个word程序,就得到多 个winword.exe进程,处理不同的数据。 进程的概念 • 操作系统(管理任务)以外的都属于“用户”的任务。 • 计算机处理的所有 “用户”的任务由进程完成。 • 为强调进程完成的是用户的任务,通常将进程称为用户进程。 • 计算机系统中的任务通常就是指进程。例如, – Linux内核中通常把进程称为任务,每个进程主要通过一个称为 进程描述符(process descriptor )的结构来描述,其结构类型 定义为task_struct ,包含了一个进程的所有信息。 – 所有进程通过一个双向循环链表实现的任务列表(task list )来 描述,任务列表中每个

文档评论(0)

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

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

1亿VIP精品文档

相关文档