Linux_进程

进程:
进程:运行中的程序
程序:存储在磁盘上的二进制可执行文件
进程:一组有序指令+数据+资源的集合
进程是程序的执行过程,有开始,有结束,有结果,操作系统为了唯一标识一个进程,会给进程分配一个ID:PID

内核对象:进程都是独立运行的,所以进程要通讯,必须有能够共享的东西,内核对象,内核对象由操作系统内核维护的、在操作系统内核中的结构体变量。
标识符:标识符是内核对象的内部名,类似文件描述符
键:用户标识,通过相同的用户标识访问同一个内核对象,类似文件名

进程的执行方式:
前台执行:进程执行后,终端必须等待进程执行完成,才能接着工作
后台执行:进程的执行与终端的执行互不影响
异步执行:指指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。
同步执行:指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去 ,实现同步的机制主要包括临界区、互斥、信号量和事件

并发运行与并行区别:
并行是指多个事件在同一时刻发生。如果计算机中有多个CPU,那么这些程序将会被分配到多个CPU上执行,实现并行执行即利用每个CPU来执行可并发执行的程序,这样多个程序便可以同时执行。
并发是指多个事件在同一时间段发生。在多道程序环境下,并发性是指在一段时间内系统中宏观上有多个程序在运行,但是在单CPU系统中,同一时刻却只能有一个程序在运行,故微观上这些程序是交替执行的(多采用时间片轮转算法)。

并发的本质是一个CPU在多个程序运行过程中的时分复用,并发对有限的系统资源实现多用户共享,消除计算机软硬件之间的互相等待现象,以提高系统资源利用率。对于多CPU系统,可让各程序在不同CPU上并行执行,以加快计算速度.并发还可以简化程序设计任务—一个较大较复杂的程序可以被分成几个能够同时运行的小程序,每个小程序的逻辑可获得一定的简化。

进程是执行中的程序,是一个动态的过程,操作系统为了管理进程,因而通过一个task_struct结构体记录进程的信息(进程标识符、优先级、进程状态、程序计数器、程序上下文、信号、打开的文件等等),每一个进程都有一个task_struct结构体变量,称之为PCB(进程控制块),32位系统上,每个PCB大约1.7k,操作系统通过一个 双向循环链表管理所有的PCB

进程状态转移图:
进程在其生命周期内可以存在多个状态,主要包括:就绪、运行、阻塞。/proc/PID/status查看进程状态


就绪:所有资源准备完成,等待CPU空闲
运行:在CPU上真正执行的状态
阻塞:等待某些事件发生,事件发前不能被CPU调度的状态
就绪-->运行:系统进行进程调度
运行-->就绪:分配给进程的时间片用完
运行-->阻塞:需要某些事件的发生才能运行(阻塞函数)
阻塞-->就绪:等待的事件已经发生,只能转到就绪状态,不能直接转到运行
除此之外进程还有创建、退出、就绪/挂起、阻塞/挂起等状态

进程的加载方式:操作系统为每一个进程维护一个页表,所以进程加载时,可以不连续的加载到内存上

逻辑地址:  每个程序在生成时 , 其中全局变量地址 、 静态变量地址 、 函数地址等都是已经分配好的,其地址是相对于本程序的地址,这个地址称之为逻辑地址。
物理地址:内存空间上的地址,即真实存在的地址。
当程序运行成为进程时,根据进程的页表,可以将逻辑地址转化为物理地址进行访问。
交换分区:对于内存的补充,分区空间在磁盘中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值