进程的管理、运行状态和加载

1、什么是进程?
        进程是一个动态的实体,是程序的一次执行过程,进程是操作系统资源分配的基本单位。进程与程序的区别在于进程是动态的,程序是静态的,好比程序是乐谱,进程就是演凑的过程,进程是运行中的程序,程序是存储在磁盘上的可执行的二进制文件。
2、进程的管理
        操作系统为了管理进程,通过一个task_struct的结构体来记录进程的信息(进程标识符、进程状态、优先级、程序计数器、程序上下文、信号、文件信息等等),每一个进程都有一个task_struct结构体变量,称之为PCB(进程控制块),在32位系统上,每个PCB大概有1.7K,操作系统通过一个双向循环链表管理所有的PCB。
进程标识符:和这个进程相关的唯一标识符,用来区别其他进程。
进程状态:如果进程正在执行,那么进程处于执行状态。
优先级:相对于其他进程的优先级。
程序计数器:程序中即将被执行的下一条指令的地址。
程序上下文:进程执行时处理器的寄存器中的数据。
3、进程的运行状态
      
进程在其生命周期内可以存在多个状态,主要有就绪态、运行态和阻塞态。
就绪态:所有资源都准备完成,等待CPU空闲的状态。
运行态:在CPU上真正执行的状态。
阻塞态:等待某些事件发生,该事件未发生前,就不能被CPU调度的状态。

就绪态——>运行态:系统进行进程调度。
运行态——>就绪态:分配给进程的时间片用完,将CPU的执行时间划分为很小的时间片,每个进程在CPU上执行一次只会分配一个时间片。
运行态——>阻塞态:需要的某些事件发生才能运行,如I/O请求等。
阻塞态——>就绪态:等待的事件已经发生,只能进入到就绪态,不能直接到运行态。
除此之外,进程还有创建、退出、就绪/挂起、阻塞/挂起等状态。
4、程序的加载----以简单分“页”为例
当运行一个程序时,首先将程序加载到内存上,加载到内存上有很多方法,下面以简单分页为例:
页表:操作系统为每个进程维护一个页表,页表主要记录其加载时每个块对应的页号。
分页的特点:不要求所有的块连续,可以避免外部碎片,但是会产生内部碎片。

        分页将物理内存上的空间划分为很小的区块,这个区块称为页,一般大小为4KB,内存上的程序使用完后释放,在循环使用,可以提高空间的使用率。A程序中在2号页上有一个变量a,假设a在2号页上的偏移量为256,它的逻辑地址为4k*2+256,通过查页表可知2号页在内存的5号页帧上,偏移量不变还是原来的256,所以物理地址为4k*5+256。
        当一个程序加载到内存时,刚开始只加载0号页,剩下的页暂时不会访问到,不用加载到内存中,当0号页访问快完毕时,如果要访问1号页,再将1号页加载到内存中,如果此时内存已满,没有空间让页面加载进来,则采用页面置换算法,将页面加载到内存中在接着访问,以此类推,直到访问完毕释放内存上的程序。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux进程管理进程通信是操作系统中非常重要的概念。我可以为您提供一些关于这两个主题的基本信息。 1. 进程管理: 在Linux中,进程是指在执行中的程序实例。进程管理包括创建、调度、终止和监控进程的活动。以下是一些关于进程管理的关键概念: - 进程标识符(PID):每个进程都有一个唯一的PID,用于标识和跟踪进程。 - 进程状态进程可以处于运行、就绪、阻塞或终止等不同状态。 - 进程调度:操作系统根据特定算法决定哪个进程应该在给定时间内运行。 - 进程创建:通过fork()系统调用创建子进程,或者通过exec()系列系统调用加载新程序镜像并替换当前进程。 - 进程终止:进程可以自愿终止,或者由其他进程(如父进程或操作系统)强制终止。 - 进程监控:可以使用系统工具(如ps、top)或编程接口(如proc文件系统)来监控和管理进程。 2. 进程通信: 进程通信是指进程之间交换数据和信息的机制。在Linux中,有多种方法可以进行进程间通信,包括: - 管道(Pipe):用于在父子进程或具有亲缘关系的进程之间进行通信。 - 信号(Signal):用于向进程发送简单的通知或中断信号。 - 共享内存(Shared Memory):允许多个进程共享同一块物理内存,以便快速高效地进行数据交换。 - 消息队列(Message Queue):进程可以通过消息队列传递和接收消息。 - 信号量(Semaphore):用于实现进程间的互斥和同步操作。 - 套接字(Socket):适用于网络编程,允许不同主机上的进程进行通信。 这只是对Linux进程管理进程通信的简要介绍,如果您有任何具体问题或深入了解的需求,请随时提问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值