计蒜客(二)进程
1.进程,地址空间与线程
一个进程可以使用的全部内存的地址和它们存储的数据成为这个进程的 地址空间。我们可以将级才能拿笼统地看成是一个或多个线程与一个地址空间的结合。
进程在系统中的实现方式需要达到两个目的:
(1)进程的结果必须囊括一个进程的运行状态,在由于中断、异常或系统调度进入内核态时我们应该能够将进程的运行状态放入内存中的某一位置,使我们可以在某一个时间点根据进程的优先级接着这次的进度再运行该进程
(2)由于进程在用户一侧对内存进行抽象,我们需要在系统一侧包含从抽象内存向实际内存和外存(磁盘等存储设备)的映射,以便通过抽象内存的地址获得物理地址和其中存储的数据。
为了(1),即在进程中存储其运行状态,我们将在进程中存储处理器状态寄存器、指令计数器、栈指针、通用寄存器等代表了进程目前的运行状态的值。由于线代计算机中往往有多个核和多个处理器,我们的程序可以达到 并行(parallelism,即在物理时间上同时进行,区别于多个进程在处理器上的并发(concurrency)),因此同一个进程可能同时包含有多个不同的运行状态。为了更好区分进程在一个处理器上的运行状态和进程本身的运行状态,我们引入 线程(thread)概念。每个线程拥有一个线程控制块(Thread control block,TCB),用来存储我们上述提到的处理器状态寄存器、指令计数器、栈指针、通用寄存器等数值,但同一个进程中的所有线程都共享同一个地址空间。
一个用户进程所看到的内存空间是抽象的,区别于实际的物理内存,因此为了支持进程从抽象内存获取物理内存中存储的信息,我们需要在进程中包含从抽象
文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。
原文链接:andyguo.blog.csdn.net/article/details/104123476
- 点赞
- 收藏
- 关注作者
评论(0)