1.进程描述符:
进程元数据:每个进程都有其描述符。
每个进程描述符是通过双向链表保存
创建进程时除了需要分配cpu,内存等资源外还需要在内核的内存空间中维护一个进程描述文件添加到链表上。
进程描述符:包含进程的状态,线程信息,运行的列表,内存映射信息,父进程,打开的文件,正在处理的信号等
描述符文件大小是一定的。
2.进程切换(上下文件切换)
2.1.A进程切换成B进程:
需要将栈信息其他寄存信息,指数计数器等信息保存到进程描述文件中,进程描述文件由内核维护,所以最终是保存在内核中。A进入挂起。
B进程恢复,将栈指针,指数计数器计入cpu中。
2.2. 进程切换是由内核完成,所以需要由用户空间转到内核模式再到用户模式的切换中,不可能从一个进程到另一个进程,必须内核完成,所以cpu时间需要由内核占用一部分。
3.进程抢占
优先高的可以抢占优先级低的进程的cpu时间。
3.1.什么时候抢占
根据cpu的时钟(cpu频率)来抢占。每次时钟来了就可以抢占了。
3.2.进程饥饿