linux 进程关系

单道程序设计:一个 CPU同一时刻只能运行一个程序,但是感觉是多个程序
——并发处理(宏观上多个,微观上实际是一个)
多道程序运行(分时系统)
——并行处理:真的是多个程序同时运行

硬件中断技术的出现,进而软件上有了分时系统,时间片轮转。

程序:为了执行特定任务的一系列指令的有序集合。



进程:

从用户角度看:进程是程序的一次动态执行过程

从操作系统来看:

1.进程是操作系统分配内存,CPU片等系统资源(系统中能打开的文件)的基本单位。     
2.进程是资源操作的最小单位。
3.每个进程有独立的运行状态,有自己独立的地址空间(4G)      

PCB:进程控制块
(在操作系统中,管理进程的属性集合——进程是程序的一次执行过程,需要保存进程的现场信息,这些信息需要一个数据结构来保存,在C语言中用结构体,我们将这个结构称为PCB)

PCB是一个操作系统感知一个进程存在的重要数据结构。



从操作系统角度来看:

程序=代码段+数据段
进程=代码段+数据段+堆栈+PCB
PCB{
     pc  下一条指令的地址
     esp  栈顶指针
     ebp  基址
   }
PCB记录了代码和数据的地址,将代码和数据有效的粘合


Linux 对应的PCB数据结构:task_struct

进程标识符
进程状态
进程空间
各种时间信息
进程间通信
内存使用情况
寄存器

进程和程序的区别:

1.进程是动态的(进程是短暂的)
2.程序是静态的(放在磁盘/光盘上的永久文件)
3.进程有PCB文件
4.一个程序可以进行多个程序
5.一个进程只能对应一个程序(例:一个工程只能对应一个main函数)

kill -l 显示所有进程
kill+进程——给这个进程发送一个信号
ps查看进程状态
ps aux | grep aplay
ps -ef



状态变迁:

三态
这里写图片描述

linux 七态

这里写图片描述



awk” {print $2 (提取第二列的信息)}` filename

进程标识符

操作系统会给每个进程分配一个独一无二的编号。

编号的范围  cat /proc/sys/kernel/pid_max
0   内核进程
1号进程是系统内部的第一个进程
0号进程启动1号进程
swap分区


创建进程的一般过程:

父进程:定义过的   子进程:新的没有被使用过的
1.给新建的进程分配一个进程标识符,在内核中创建PCD
2.复制父进程的环境
3.给子进程分配资源,(堆,代码,数据等)
4.复制父进程的地址空间内容到子进程的地址空间
5.将进程置为就绪态,放到就绪队列,等待CPU调度算法调度时,进入CPU分配内存
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值