Linux进程

1.进程切换

进程A进入内核模式后CPU的控制权转交给DMA,此时CPU空闲,再调度进程B,进程B也右用户模式进入内核模式,直到时间片段用完,再返回到进程A,返回read的值。

 2.操作系统为什么会为每个进程虚拟内存空间?

是为了让多个进程可以有效访问物理内存。

3,操作系统经典3态

因创建而就绪,因调度而执行;因时间片用完而重新就绪;

执行中因I/O请求而阻塞;

I/O完成而就绪

注意:阻塞以后不能直接执行,必须进入就绪状态。

Linux内核中的进程状态

q  运行状态(TASK_RUNNING

q  可中断睡眠状态(TASK_INTERRUPTIBLE

q  不可中断睡眠状态(TASK_UNINTERRUPTIBLE

q  暂停状态(TASK_STOPPED

q  僵死状态(TASK_ZOMBIE

 4.进程的一次调用2次返回:指进程调用1次后在各自的进程空间中返回。

5.怎样理解fork返回值大于零是父进程,为什么要这样设计:

fork()创建一个进程返回一个pid,pid>0是父进程,pid=0子进程;因为子进程获得父进程的pid比较容易,父进程获得子进程的pid比较困难。

6.创建子进程后,子进程程序不再从父进程的main()入口开始执行,原因是:父进程按照叶式管理将内存4区拷贝给子进程,因此从fork往后执行即可。

原文地址:https://www.cnblogs.com/jefy/p/9683487.html