一.进程
1.什么是进程
一个进程创建,他会生成几块:
- 代码段:进程执行的程序代码
- 数据段:全局变量,静态变量,在进程生命周期中是动态可变的
- 堆:动态分配的内存区域,malloc、calloc、realloc等函数进行开辟
- 栈:用于存储局部变量、函数参数和返回地址
- PCB进程控制块:包含进程ID(PID),进程状态,程序计数器(吓一条指令的位置),进程优先级等等
进程是资源分配和调度的基本单位
进程是资源分配的最小单位
线程是最小的调度单位
2.进程中的三态模型
- 阻塞态:这个进程需要相应的资源,而现在需要等待相应的资源,那么这个进程就进入到阻塞态,CPU会将这个进程给拿下CPU,去执行就绪在就绪队列中的第一个进程。
- 就绪态:一个进程需要运行,并且他所有的需求都满足了,就等待CPU去执行,那么这个进程会在这个就绪队列中进行排队,等待CPU的调度执行
- 运行态:这个进程在CPU上执行
挂起
- 挂起:在挂起这个进程时,会将这些运行在内存上的内容给写入到磁盘中或交换区中,然后释放内存,在记录上下文(记录上下文的作用就是,为了让你回到在你挂起这个进程前那个状态,和玩游戏存档的意思差不多)
- 唤醒:将刚刚写入到磁盘的内容,又写入到内存中,到达就绪态,等待操作系统的调度
进程详细的五态
对于3态模型,只多了创建态和终止态。
3.进程的控制