进程与线程

进程的创建方式:

(1):由系统程序模块统一创建

(2):由父进程创建,例如在层次结构的系统中,父进程创建子进程以完成并行工作


进程切换涉及如下过程:

(1)保存处理机的上下文

(2)修改当前运行进程的进程控制块内容,包括将进程状态从运行态改为其他状态,将该进程的进程控制块链接到相应新状态的队列中

(3)选择另一个进程执行

(4)修改被调度进程的进程控制块,包括把其状态改变到运行态

(5)将当前进程存储管理数据结构修改为新选进程的存储管理数据结构

(6)恢复被选进程上次切换出处理机时的处理机现场,按原保护的程序计数器值重置程序计数器,运行新选进程


作业与进程:

作业是用户需要计算机完成某项任务时要求计算机所做的工作的集合;而进程则是已提交完毕的程序的执行过程地描述,是资源分配的基本单位。

区别:

(1)作业是用户向计算机提交任务的任务实体,进程是完成用户任务的执行实体

(2)一个作业可由多个进程组成,且必须至少由一个进程组成,但但反过来不成立

(3)作业的概念主要用在批处理系统中,像Linux这样的分时系统中,则没有作业概念,而进程的概念则用在几乎所有的多道程序系统中


常用的作业调度算法:

(1)先来先服务(FCFS)  (2)最短作业优先算法(SJF)(3) 最短剩余时间优先算法(SRTF)  (4)最高响应比优先算法(HRN) (5)基于优先数调度算法(HRF)


线程(cpu调度的基本单位):

线程可以进一步提高系统的运行效率,减少处理机的空转时间和调度切换的时间。进程作为资源的分配单位和保护单位,为线程提供运行的静态环境,但在处理机上调度的基本单位已是线程了。

线程是进程的一条执行路径,它包含独立的堆栈和CPU寄存器状态,每个线程共享其所附的进程的所有资源。线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一物理内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除。

进程和线程的切换:进程切换涉及到有关资源指针的保存及地址空间的变化等问题;线程切换时,由于同一进程内的线程共享资源和地址空间,将不涉及资源信息的保存和地址变化问题,从而减少了操作系统的开销时间。而且,进程的调度与切换都是由操作系统内核完成,而线程则既可以由操作系统内核完成,也可以由用户程序进行。

进程间的关系比较疏远;而线程间的关系则要紧密的多,虽然各线程为保持自己的控制流而独有寄存器和堆栈,但由于两线程从属于同一进程,它们共享同一地址空间,所以动态堆、静态数据区及程序代码为各线程共享。


你可能感兴趣的:(线程,操作系统,进程)