为什么要有操作系统
管理所有软硬件资源,为用户程序(应用程序)提供一个良好的执行环境
操作系统被定义为一款“搞管理”的软件
底层硬件-->驱动程序-->操作系统-->系统调用接口-->用户操作接口-->用户
进程概念:正在执行的程序,担当分配系统资源(cpu时间,内存)的实体
描述进程的叫做PCB:进程信息被放在一个叫做进程控制块的数据结构中(linux下叫 task_strcut)
组织进程: 所有运行在系统里的进程都已task_strcut链表的形式存在于内核中
进程状态:一个进程可以有好几个状态,一起来看看吧
1.R运行状态:并不意味着进程一定在运行中,它表明进程要么在运行中要么在运行队列里
2.S睡眠状态:意味着进程在等待事件完成,可以被杀死
3.D磁盘休眠状态:不可中断睡眠,在这个状态下的进程通常会等待IO的结束,不可以被杀死
4.T停止状态:可以通过发送SIGSTOP信号给进程来停止进程,这个被暂停的进程可以发送信号让进程继续运行
5.X死亡状态:这个状态只是一个返回状态,你不会在任务列表里看到这个状态
6.Z僵尸进程:僵尸状态是一个特殊的状态,当进程退出并且父进程没有读取子进程退出的返回代码时就会产生僵尸进程
僵尸进程会以终止状态保持在进程表中,并且会一直等待父进程读取子进程的退出的状态码
所以,只要子进程退出,父进程还在运行,父进程就会一直等待子进程的退出状态码,子进程就进入Z状态
进程退出后不会立即将pcb释放,会将pcb保留一段时间,由父进程回收
僵尸进程会导致内存泄漏
7.孤儿进程:父进程如果提前退出,子进程就称为“孤儿进程”,孤儿进程被1号init进程领养
进程并行:多个进程在多个CPU下,同时运行,称为并行
进程并发:多个进程在一个CPU下采取进程切换的方式,在一段时间之内,让多个进程都得以推进称为并发