进程切换:
进程切换的话也就是把CPU资源让给别人,然后自身进入等待状态,在这里要把自己上下文保存下来,俗称保存现场,然后下次轮到自己的时候恢复线程然后继续执行
进程创建:
使用fork拷贝当前进程,当前进程的内存空间,缓存,还有程序代码段等等都会拷贝过来,这个也就是子进程,
exec代表改变进程运行的程序,并且可以带有一些参数啥的,这样就能把进程内容覆盖掉,成了一个新的进程
父进程可以通过wait(),使用过该方法后父进程会等待子进程的返回值
1,有子进程,进行等待
2,没有,直接退出
3,有很多僵尸进程,然后随便选一个值
子进程通过exit()返回值,使用该方法,就会给一个值给父进程,等待父进程处理,如果父进程一直不处理就会变成僵尸进程
调度:
也就是进程之间切换怎么选择的问题,有几个算法
1,先来先服务 简单,但是平均周转时间一般太高
2,短进程优先 平均周转时间是最低的,但是可能长进程会饥饿,一直得不到资源 利用过去的访问时间来进行猜测预估,得出结果
3,高响应比 (s+t)/s 算出响应时间