进程管理&进程加载

一、进程

  多道程序在执行时,需要共享系统资源,从而导致各程序在执行过程中出现相互制约的关系,程序的执行表现出间断性的特征。这些特征都是在程序的执行过程中发生的,是动态的过程,而传统的程序本身是一组指令的集合,是一个静态的概念,无法描述程序在内存中的执行情况,即我们无法从程序的字面上看出它何时执行,何时停顿,也无法看出它与其它执行程序的关系,因此,程序这个静态概念已不能如实反映程序并发执行过程的特征。为了深刻描述程序动态执行过程的性质,人们引入“进程”概念。
1、进程:运行加载到内存中的程序被称之为进程。
2、进程和程序的区别:

  • 存储位置不同,程序是存储在磁盘上的二进制文件,进程被加载到了内存上;
  • 进程不仅仅是由程序实体组成,还包括进程控制块PCB以及一些描述进程信息的结构体。程序是指令、数据及其组织形式的描述;
  • 一个进程只能对应一个程序,一个程序可以有多个进程;
  • 进程的生命周期短暂,有动态属性,程序是永久的;

3、进程PCB:

  • 每个进程在内核中都有一个进程控制块PCB来保存进程的信息;
  • PCB是操作系统感知进程存在的唯一标识;
  • 在Lunix中,Lunix内核通过一个被称为进程描述符task_struct的结构体来管理进程。task_struct是Linux内核的一种数据结构,它会被装载到RAM里并且包含着进程的信息;

task_struct结构体内容包括:
在这里插入图片描述

  • 标识符:描述本进程的唯一标示符,用来区别其他进程;
  • 状态:任务状态,退出代码,退出信号等;
  • 优先级:相对于其他进程的优先级;
  • 程序计算器:程序中即将被执行的下一条指令的地址;
  • 内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针;
  • 上下文数据:进程执行时处理器的寄存器中的数据;
  • I/O状态信息:包括现实的I/o请求,分配给进程的I/O设备和被进程使用的文件列表;
  • 记账信息:可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号;
  • 其它信息

4、进程状态
在这里插入图片描述

  • 就绪->执行:处于就绪的进程被调度后,获得处理机资源(分派处理机时间片)。
  • 执行->就绪:处于运行状态的进程在时间片用完后,不得不让出处理机,从而从执行态转为就绪态。在可剥夺方式的操作系统中,当有优先级更高的进程就绪时,调度程序将正在执行的进程转换为就绪状态,让优先级更高的进程执行。
  • 运行->阻塞:当进程等待某一资源(如外设)使用或分配或者等待某一事件的发生(如I/O操作的完成)时,进程状态就从运行转换为了阻塞状态。进程以系统调用的形式请求操作系统提供服务,这是一种由运行用户态调用操作系统内核态的过程。
  • 阻塞->就绪:当进程等待的时间发生,如I/O操作结束或者中断结束时,中断程序必须把相应进程的状态由阻塞转换为就绪状态。
  • 退出状态:1、进程正常结束退出;2、被强制退出;3、因为异常而终止;4、因出错而终止。

二、进程加载:内存进行简单分页

1、将内存上用户空间划分为多个4k的页帧,从0地址开始编号。
2、一个程序在磁盘上存储,对于EXT文件系统也是4k的block号存储,从0开始编号称为页。
3、操作系统为每一个进程维护了一个页表,记录了进程页与内存页帧的映射关系。
4、加了页表,进程加载可以不连续,其次只会在最后一个页浪费一些空间,提高了效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值