60年代,在OS中能拥有资源和独立运行的基本单位是进程,然而随着计算机技术的发展,进程出现了很多弊端:一是由于进程是资源拥有者,创建、撤销与切换存在较大的时空开销,因此需要引入轻型进程;二是由于对称多处理机出现,可以满足多个运行单位,而多个进程并行开销过大。
因此在80年代,出现了能独立运行的基本单位---线程
1、线程
- 线程(thread)是操作系统能够进行运算调度的最小单位。被包含在进程之中,是进程的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程可以并发多个线程,每条线程并行执行不同的任务
- 一个标准的线程由线程ID,当前指令指针、寄存器和堆栈组成。
- 线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。
- 一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行,由于线程之间的相互制约,致使线程在运行中出现间断性。线程也就有就绪、阻塞和运行三种基本状态。
2、进程
- 进程(process)是计算机中已运行程序的实体。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。
- 用户下达运行程序的命令后,就会产生进程。同一程序可以产生多个进程
- 进程包括:程序可执行机器码的一个在存储器的映像;分配到的存储器,存储器内容包括可执行代码、特定于进程的数据(输入、输出)、调用堆栈、堆栈(用于保存运行时运输中产生的数据);分配给该进程的资源操作系统描述符,如文件描述符或者文件句柄、数据源和数据终端;安全特性,如线程拥有者和进程的权限集;处理器状态,如寄存器内容、物理存储器定址等。当程序正在运行时,状态通产存储在寄存器,其他情况在存储器。
网友评论