51_进程之进程的正式引入

进程是一个动态的过程,而不是一个静态的实物

进程就是程序的一次运行过程,一个可执行程序a。out的一次运行过程,a.out从运行到结束,就是一个进程。

进程控制块PCB process contrl block就是内核中专门管理进程的数据结构,包含了进程相关的各种信息。

进程ID,OS给每一个进程分配了一个ID,根文件描述符很像

ps命令,打印系统当前进程


PID进程ID号

TTY在哪个终端上面

时间和哪一个命令

输入ps -a 显示

ps-aux显示所有进程  类似于windows下的任务管理器


从1开始,0是系统内部的,内核态下面的进程 我们看不到的

有一些连着有些不连着  不连着运行一下就终结了

再分配给新的进程就接着往下分配了

进程号的意义,能够标识唯一的进程

getpid,getppid获取本进程 父进程的ID,当前进程是父进程产生的 parents的意思

getuid,获取当前的用户ID,用一个数字编号表示当前是哪个用户的ID

geigid,获取当前的组ID

geteuid,获取有效用户ID

geiegid,获取有效组ID

Linux下有实际用户ID和有效用户ID,实际组ID,有效组ID

pid_t  t代表type,所以读作PID type  类型的意思

#include<stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main(void)
{
	//int ret = -1;
	
	
	printf("PID : %d.\n", getpid());
	printf("PPID : %d.\n", getppid());
	
	return 0;
}


bash是脚本是当前程序的父进程


每一次当前的进程的ID都变化 ,但是父进程的ID不变

进程被分配的数字不会被重复使用

运行完,这个ID也不会再分配给别的 进程ID

其实是直接去进程控制块去拿出的ID


多进程调度的原理

操作系统同时运行多个进程,多个进程在被同时运行,裸机程序其实就是只运行一个进程

主要因为CPU的性能不够好,高级CPU性能快,要发挥最大的效能,从而有了宏观的并行,微观的串行

要通过多进程发挥CPU的最大效能

多进程要有调度,比如十个时间片,给三个进程分

所以必须要有一套机制和策略调度进程,其实是一套算法,先运行谁后运行谁,每一个运行多久,

什么样的任务合理,比较急的先做,不太急得后做

要考虑任务的复杂情况,调度原理,跟我们做事是一样的

调度虽然复杂,但是不用我们考虑

准确的来说,系统调度是以线程为单位的而不是以进程为单位的

类似于饭馆上菜,给大家都先上点

进程就是程序的一次执行











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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值