计蒜客(二)进程

举报
野猪佩奇996 发表于 2022/01/23 00:14:49 2022/01/23
【摘要】 1.进程,地址空间与线程     一个进程可以使用的全部内存的地址和它们存储的数据成为这个进程的 地址空间。我们可以将级才能拿笼统地看成是一个或多个线程与一个地址空间的结合。     进程在系统中的实现方式需要达到两个目的: (1)进程的结果必须囊括一个进程的运行状态,在由于中断、异常或系统...

1.进程,地址空间与线程

    一个进程可以使用的全部内存的地址和它们存储的数据成为这个进程的 地址空间。我们可以将级才能拿笼统地看成是一个或多个线程与一个地址空间的结合。

    进程在系统中的实现方式需要达到两个目的:

(1)进程的结果必须囊括一个进程的运行状态,在由于中断、异常或系统调度进入内核态时我们应该能够将进程的运行状态放入内存中的某一位置,使我们可以在某一个时间点根据进程的优先级接着这次的进度再运行该进程

(2)由于进程在用户一侧对内存进行抽象,我们需要在系统一侧包含从抽象内存向实际内存和外存(磁盘等存储设备)的映射,以便通过抽象内存的地址获得物理地址和其中存储的数据。

为了(1),即在进程中存储其运行状态,我们将在进程中存储处理器状态寄存器、指令计数器、栈指针、通用寄存器等代表了进程目前的运行状态的值。由于线代计算机中往往有多个核和多个处理器,我们的程序可以达到 并行(parallelism,即在物理时间上同时进行,区别于多个进程在处理器上的并发(concurrency)),因此同一个进程可能同时包含有多个不同的运行状态。为了更好区分进程在一个处理器上的运行状态和进程本身的运行状态,我们引入 线程(thread)概念。每个线程拥有一个线程控制块(Thread control block,TCB),用来存储我们上述提到的处理器状态寄存器、指令计数器、栈指针、通用寄存器等数值,但同一个进程中的所有线程都共享同一个地址空间。

    一个用户进程所看到的内存空间是抽象的,区别于实际的物理内存,因此为了支持进程从抽象内存获取物理内存中存储的信息,我们需要在进程中包含从抽象

文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。

原文链接:andyguo.blog.csdn.net/article/details/104123476

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。