详细分析操作系统线程&进程

详细分析操作系统线程&进程,第1张

详细分析操作系统线程&进程,第2张

陈述1:进程是某个数据集上具有一定独立功能的程序的运行活动,进程是系统进行资源分配和调度的独立单元。

线程是进程的实体,是CPU调度和分派的基本单位,比进程小,可以独立运行。一个线程本身基本上没有系统资源,只有一些运行所必需的资源(比如一个程序计数器,一组寄存器和栈),但是它可以和属于同一进程的其他线程共享一个进程拥有的所有资源。

一个线程可以创建和取消另一个线程;同一进程中的多个线程可以并发执行。

语句二:进程和线程是操作系统所经历的程序操作的基本单位,系统利用这个基本单位来实现应用的并发。进程和线程的区别在于:

简而言之,一个程序至少有一个进程,一个进程至少有一个线程。

线程的划分规模小于进程,使得多线程程序具有高并发性。

另外,进程在执行时有独立的内存单元,多个线程共享内存,大大提高了程序的运行效率。

在执行过程中,线程不同于进程。每个独立的线程都有一个程序运行的入口、一个顺序执行序列和一个程序出口。但是线程不能独立执行,所以必须由应用程序提供的多个线程来控制。

从逻辑的角度来看,多线程的意义在于一个应用中可以同时执行多个执行部分。但是,操作系统并没有将多线程视为多个独立的应用程序来实现进程的调度和管理以及资源分配。这是进程和线程之间的重要区别。

陈述# 3:应用程序中多线程的共存是现代操作系统的基本特征和重要标志。用过UNIX操作系统的读者都知道进程。在UNIX操作系统中,每个应用程序的执行都在操作系统内核中注册一个进程标志,操作系统根据分配的标志来调度应用程序的执行和分配系统资源。但是进程和线程有什么区别呢?

而进程和线程是操作系统所经历的程序操作的基本单元,系统利用这个基本单元来实现系统对应用的并发。进程和线程的区别在于:

线程的划分尺度小于进程的划分尺度,使得多线程程序的并发性变差。

另外,进程在执行时有独立的内存单元,多个线程共享内存,大大提高了程序的运行效率。

在执行过程中,线程不同于进程。每个独立的线程都有一个程序运行的入口、一个顺序执行序列和一个程序出口。但是线程不能独立执行,所以必须由应用程序提供的多个线程来控制。

从逻辑的角度来看,多线程的意义在于一个应用中可以同时执行多个执行部分。但是,操作系统并没有将多线程视为多个独立的应用程序来实现进程的调度和管理以及资源分配。这是进程和线程之间的重要区别。


进程是最初在Unix等多用户多任务操作系统中定义的一个概念,用来表示应用程序在内存环境中的基本执行单元。以Unix操作系统为例,进程是Unix操作系统环境的基本组成部分,是系统资源分配的基本单位。Unix操作系统中几乎所有的用户管理和资源分配工作都是通过操作系统控制应用进程来实现的。

用C、C++、Java等语言编写的源程序被相应的编译器编译成可执行文件,然后提交给计算机处理器运行。此时,处于可执行状态的应用程序称为进程。从用户的角度来看,进程就是一个应用的执行过程。从操作系统的核心来看,进程代表了操作系统分配的内存、CPU时间片等资源的基本单位,是为正在运行的程序提供的运行环境。进程和应用的区别在于,应用是作为静态文件存储在计算机系统的硬盘等存储室空中,而进程是操作系统在动态条件下维护的系统资源管理实体。多任务环境下应用流程的主要特征包括:

●进程在执行过程中有内存单元的初始入口点,进程在生存过程中始终有独立的内存地址空;

●进程的生存期状态包括创建、就绪、运行、阻塞和死亡类型;

●应用进程在执行过程中发送给CPU的运行指令有不同的形式,进程的状态可以分为用户状态和核心状态。用户状态的进程执行应用程序指令,核心状态的应用程序进程执行操作系统指令。

Unix操作系统启动过程中,系统自动创建swapper、init等系统进程,用于管理内存资源和调度用户进程。在Unix环境中,操作系统创建的进程和应用程序创建的进程都有进程标识(PID)。

语句4:memory空之间有一个初始入口点地址,是应用程序执行过程中的一个代码执行序列,还有一个内存出口点地址用来标记进程的结束。在进程执行的每个时间点,所有处理器指令都对应于内存单元地址。

Java中定义的线程还包括一个内存入口点地址、一个出口点地址和一个可以顺序执行的代码序列。但是,进程和线程的重要区别在于,线程不能单独执行,必须运行在一个活动的应用进程中,所以可以定义线程是程序内部具有并发性的顺序代码流。

Unix和Microsoft Windows操作系统支持多用户多进程并发执行,而Java语言支持应用进程内多个执行线程的并发执行。多线程的意义在于应用程序的多个逻辑单元可以并发执行。但是多线程并不意味着多个用户进程在执行,操作系统也不会把每个线程当作一个独立的进程来分配独立的系统资源。一个进程可以创建它的子进程,子进程拥有与父进程不同的可执行代码和数据内存空。在用来表示应用的进程中,多个线程共享数据内存空,但是每个线程都有自己独立的执行栈和程序执行上下文。

基于以上差异,螺纹也可以称为轻量级工艺(LWP)。不同的线程允许任务协作和数据交换,这使得计算机系统资源的消耗非常便宜。

需要线程操作系统支持,并且不是所有类型的计算机都支持多线程应用程序。Java编程语言结合了线程支持和语言运行环境,提供了多任务并发执行的能力。就像一个人把衣服放进洗衣机,自动洗干净,把米饭放进电饭煲,然后开始做饭。饭做好了,饭做好了,衣服洗好了。

需要注意的是,在应用中使用多线程并不会增加CPU的数据处理能力。只有在多CPU计算机或者网络计算架构下,将Java程序划分为多个并发执行线程,然后启动多个线程同时运行,使得不同的线程运行在基于不同处理器的Java虚拟机中,才能提高应用程序的执行效率。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 详细分析操作系统线程&进程

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情