4.1 什么是进程(process)
- 进程 = 程序 + 运行 ----> 最早的OS中进程又叫job,其实质就是运行中的程序
- 为了提高cpu的利用率,实现多道编程,产生进程的概念;可以单机多进程(实例)的工作
- 进程有三个状态:阻塞、就绪、运行
4.2 进程的创立
- 分配资源(进程控制块、寄存器资源、内存资源、程序计数器)
- 将程序代码(依赖的数据,不是必须的;程序代码是必须的)从磁盘读入到内存
- 设置程序计数器:跳转到程序的起始地址
4.3 进程与地址空间
进程空间也叫地址空间,就是进程所需要的所有资源;地址空间只是资源,是被动的不能自己采取任何action,需要有有一个角色来进行各种action;
这个角色就是线程;【地址空间就类似舞台上的各种道具,线程就类似于演员】
- 进程的所有信息用 进程表来管理,下面是进程表的信息:
- 进程ID、创建进程userid、创建时间
- 子进程、父进程、祖父进程的指针
- 寄存器、栈指针、当前持有句柄
4.4 进程管理
进程管理最大的任务是资源管理和效率:
- 资源管理要公平: 不同的用户、不同的进程获取资源的方式要公平;
- 效率也是同样重要的: 一个进程的阻塞,即使给他再多的cpu,也是在等待,所以整体的效率、利用率也非常重要
4.5 进程的缺陷
- 一个process 在同一个时间只能干一件事情(多线程可以解决这个问题:一个线程处理http 服务,一个线程处理数据 .....;多个任务并发)
- 一个process 阻塞(比如等待I/O) 那这个进程就不能干其他事情了,只能等待阻塞的资源ready
- 为了解决上面2个问题,我们引入了线程的概念