操作系统
首先我先谈一下我关于操作系统的理解,操作系统本身就是一个比较大的进程,他对下负责管理计算机的软硬件以及为软件提供良好的运行环境,对上和用户进行交互。
用户通过shell命令操作系统调用接口,系统调用接口又连接着操作接口,操作接口下则是驱动软件,驱动软件负责调用系统的各种硬件。
所谓的操作系统,就是用户和内核之间的一层壳,因为用户直接使用内核可能会发生各种不可预料的事情,这才有了操作系统。
进程
那么,什么是进程呢?
首先,我们写的程序不是进程,只有当程序运行起来的时候,他才是进程,所以说,进程就是运行起来的程序;
对于用户来说,进程就是运行的程序,那么站在操作系统的角度来说,进程就是对于这个进程的描述;
这个描述是个结构体,就叫PCB( task_struct );
当一个程序运行起来的时候,就是cpu把这段程序加载到内存中来,并赋予他一个唯一的标识符 PID ,并且将它所需要的一些资源进行描述,这就是所谓的PCB;
Linux中,所有的进程都被保存在 /proc 目录下,我们可是使用指令 ps aux 来查看所有的进程,还可以使用 ps -ef 来查看进程的相关信息。
进程状态
进程是有状态的,在Linux中,进程共有七种状态
(1)R运行状态(runing):并不意味着进程一定在运行中,也可以在运行队列里;
(2)S睡眠状态