Linux进程(一)进程概念

进程的概念

程序;一系列有序的指令集合(就是我们所写的代码)
进程:进程就是程序的一次执行,是系统进行资源分配和调度的独立单位。
程序是一次没有生命的实体,只有操作系统执行它时,它才能成为一个活动的实体,也就是进程。同时,操作系统通过进程控制块(pcb),来对程序进程调度使用

操作系统如何控制和调度程序

按照冯诺依曼体系结构,所有的数据想要被CPU进行处理,第一步就是要将代码和数据加载到内存中
在这里插入图片描述
由于早期CPU的性能不足,无法同时调度所有文件,所以CPU使用了一种解决方法,也就是CPU分时机制。

CPU分时机制:通过极快的速度切换和调度运行所有程序,造成了同时运行的假象。

但是,我们这里存在着几个问题,CPU是如何在内存中找到每个程序的?CPU在来回调度时,如何能够保证从上一个位置继续运行?
所以操作系统为了能够完成这些操作,设置了一个用于描述进程信息的数据结构,也就是我们通常所说的PCB

进程控制块-PCB

操作系统为了能够使每个程序独立运行,在操作系统中为其配置了一个数据结构,也就是我们通常所说的PCB(Process Control Block),这个数据在Linux下是:task_struct
task_struct中的内容
标示符: 描述本进程的唯一标示符,用来区别其他进程。
状态: 任务状态,退出代码,退出信号等。
优先级: 相对于其他进程的优先级。
程序计数器: 程序中即将被执行的下一条指令的地址。
内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
上下文数据: 进程执行时处理器的寄存器中的数据。
I/O状态信息:包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。
记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。 其他信息
PCB是操作系统对一个运行程序(也就是进程)的描述,操作系统通过这个描述来实现对程序的运行调度
操作系统正是通过一个一个的PCB来对运行中的程序进行调度使用。
CPU通过PCB中的内存指针来找到程序在内存中的地址,通过上下文数据来记录运行中程序的各种信息,通过程序计数器来找到这个程序即将执行的下一条指令的地址。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值