- 操作系统的调度分为三种:1.远程调度(创建新进程);2.中程调度(交换功能的一部分);3.短程调度(下次执行哪个进程)
当发生下面几种情况的时候会调用短程调度器,然后就看下次执行那个进程啦
- 时钟中断
- I/O中断
- 操作系统调用
- 信号(如信号量)
- 进程调度算法:
-
- 先来先服务(FCFS)
- 短作业优先(SPN)
- 最短剩余时间(SRT)
- 时间片轮转
- 最高响应比优先
- 公平共享调度
Linux内核通过一个被称为进程描述符的task_struct结构体来管理进程,这个结构体包含了一个进程所需的所有信息。
task_struct结构:
1.进程状态,将记录进程在等待,运行或死锁。
2.调度信息,由哪个调度函数调度,怎样调度等。
3.进程的通讯情况
4.因为要插入进程树,必须有联系父子兄弟的指针,当然是task_struct型
5.时间信息,比如计算好执行的时间,以便cpu分配。
6.标号,决定改进进程归属
7.可以读写打开文件的一些信息
8.进程上下文和内核上下文
9.处理器上下文
10.内存信息
因为每一个PCB都是这样的,只有这些结构,才能满足一个进程的所有要求