美文网首页
CSAPP translation page 13

CSAPP translation page 13

作者: 木子9268 | 来源:发表于2019-07-19 22:02 被阅读0次

    1.7.1进程

        当程序例如hello程序运行在现代系统当中, 操作系统给我们了一个程序只运行在系统里面的错觉(illusion ). 程序看上去是独占(exclusive )了处理器,主存和I/O设备. 处理器看上没有中断的(interruption )去执行(execute)了程序里一条接一条的(one after the other)指令. 该程序的代码和数据是系统内存中唯一的对象. 这些错觉通过处理器的概念(notion )来实现, 处理器是计算机科学里面最重要最成功的概念之一.

        进程是一个在操作系统中程序运行的抽象概念(abstraction ).多个(multiple )进程可以在一个系统下同时(concurrently )运行,每个进程运行独占(exclusive )使用硬件.

        并发执行(concurrently ),意思是一个进程里面的指令和另外一个进程里面的指令交错执行(interleaved ). 在大多数的系统中, 运行的进程数是多于运行他们的CPU个数. 传统的系统一次(at a time)只能够执行(execute )一个程序,而多核(multicore  )处理器能够同时执行几个程序. 无论哪种情况(in either case), 单个CPU通过在多个处理器之间进行转换(switch)可以同时(simultaneously )执行多个(multiple )进程. 操作系统实现这种交错(interleaving )执行(performs)的机制(mechanism )称为上下文切换. 为了简化讨论, 我们只考虑只有一个CPU的单处理器系统(uniprocessor system).我们会在1.9.1节(section)讨论多处理系统(multiprocessor systems).

        操作系统对所有的需要运行的进程状态信息保持跟踪状态.这种状态,被称为上下文(context ),包括了许多信息,像PC当前值,寄存器文件和主存内容. 在任何一个时刻(at any point in time), 一个单处理器系统只能执行一个进程的代码.

        当操作系统决定把控制权从当前进程转移(transfer)到其他新的进程,就会进行上下文切换(context switch),保存当前进程的上下文, 恢复(restoring )新进程的上下文(context),然后将新进程传递到新进程,新进程会准确从上次停止的( left off)地方开始(picks up). 图1.12展示了示例hello程序的基本思想。

        示例中有两个同时并发的(concurrent,同时并发的)进程: shell进程和hello进程. 起初(Initially ),shell进程   独自运行,等待命令行输入. 当我们请求运行hello程序, shell通过调用(invoking)一个专门的函数,即系统调用,来执行我们的请求,将控制权交给操作系统. 操作系统保存了一个shell上下文(context),创建了一个新的hello进程和它的上下文,然后将控制权交给新的进程.在hello程序终止后(terminates ),操作系统恢复(restores)shell进程的上下文将控制权还给它,shell等待下一条命令行输入.

    相关文章

      网友评论

          本文标题:CSAPP translation page 13

          本文链接:https://www.haomeiwen.com/subject/cqeelctx.html