moc 发表于 2018-11-4 22:25:20

009-进程

1、程序、进程
程序: 程序是完成特定任务的一系列指令集合。
进程:
        从用户的角度来看进程是程序的一次执行过程;
        从操作系统的核心来看,进程是操作系统分配的内存、CPU时间片等资源的基本单位;
        进程是资源分配的最小单位,每一个进程都有自己独立的地址空间与执行状态。像UNIX这样的多任务操作系统能够让许多程序同时运行,每一个运行着的程序就构成了一个进程。
进程地址空间:
        Linux每一个运行的程序(进程),操作系统都会为其分配一个0~4G(32位机)的地址空间(虚拟地址空间)。
进程和程序的区别:
        进程是动态的,程序是静态的;
        进程的生命周期是相对短暂的,而程序是永久的。
        一个进程只能对应一个程序,一个程序可以对应多个进程。
早期是没有进程这个概念,当出现中断技术以后才出现进程这个概念。
2、进程状态
经典进程三态:
        就绪、等待(阻塞)、运行。
状态转换原因及条件:
因创建而就绪,因调度而执行;因时间片用完而重新就绪;执行中因I/O请求而阻塞;I/O完成而就绪。
注意:阻塞以后不能直接执行,必须进入就绪状态。
Linux内核中的进程状态
        ① 运行状态<用户、内核>(TASK_RUNNING)
        ② 可中断睡眠状态(TASK_INTERRUPTIBLE)
        ③ 不可中断睡眠状态(TASK_UNINTERRUPTIBLE)
        ④ 暂停状态(TASK_STOPPED)
        ⑤ 僵死状态(TASK_ZOMBIE)
        ⑥ j就绪状态(TASK_READY)
进程调度及调度算法:
按照一定的算法,从一组待运行的进程中选出一个来占用CPU运行。
        ① 先来先服务调度算法
        ② 短进程优先调度算法
        ③ 高优先级调度算法       
        ④ 时间片轮转法
3、进程编程相关术语
进程控制块:
        ① 进程描述信息
                进程标识符用于唯一的标识一个进程。
        ② 进程控制信息
                进程当前状态、进程优先级、程序开始地址、各种计时信息、通信信息...
        ③ 资源信息
                占用内存大小及管理用数据结构指针;交换区相关信息;I/O设备号、缓冲、设备相关的数结构;文件系统相关指针。
        ④ 现场保护信息
                寄存器、PC、程序状态字PSW、栈指针。
进程标识pid:
        每个进程都会分配到一个独一无二的数字编号,我们称之为“进程标识”(process identifier),或者就直接叫它PID.
        为一个正整数,当一个进程被启动时,它会顺序挑选下一个未使用的编号数字做为自己的PID,数字1一般为特殊进程init保留的。
        0号进程(也称为)空闲进程。
        1号进程第一个用户进程。
进程创建:
        ① 不同的操作系统所提供的进程创建原语的名称和格式不尽相同,但执行创建进程原语后,操作系统所做的工作却大致相同,都包括以下几点:
        ② 给新创建的进程分配一个内部标识,在内核中建立进程结构。
        ③ 复制父进程的环境,
        ④ 为进程分配资源, 包括进程映像所需要的所有元素(程序、数据、用户栈等),
        ⑤ 复制父进程地址空间的内容到该进程地址空间中。
        ⑥ 置该进程的状态为就绪,插入就绪队列。
进程撤销:
进程终止时操作系统做以下工作:
        ① 关闭软中断: 因为进程即将终止而不再处理任何软中断信号;
        ② 回收资源: 释放进程分配的所有资源,如关闭所有已打开文件,释放进程相应的数据结构等;
        ③ 写记帐信息: 将进程在运行过程中所产生的记帐数据(其中包括进程运行时的各种统计信息)记录到一个全局记帐文件中;
        ④ 置该进程为僵死状态: 向父进程发送子进程死的软中断信号,将终止信息status送到指定的存储单元中;
        ⑤ 转进程调度: 因为此时CPU已经被释放,需要由进程调度进行CPU再分配。

页: [1]
查看完整版本: 009-进程