程序 进程 线程 的区别和联系

进程的创建过程
             一旦操作系统发现了要求创建新进程的事件后,便调用进程创建原语Creat()按下述步骤创建一个新                进程。
                  1) 申请空白PCB。为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB。
                  2) 为新进程分配资源。
                  3) 初始化进程控制块。PCB的初始化包括:
                          ①初始化标识信息,将系统分配的标识符和父进程标识符,填入新的PCB中。
                          ②初始化处理机状态信息,使程序计数器指向程序的入口地址,使栈指针指向栈顶。
                          ③初始化处理机控制信息,将进程的状态设置为就绪状态或静止就绪状态,对于优先级,通常                                 是将它设置为最低优先级,除非用户以显式的方式提出高优先级要求。
                  4) 将新进程插入就绪队列,如果进程就绪队列能够接纳新进程,便将新进程插入到就绪队列中。

什么是进程?

      狭义定义:进程就是一段程序的执行过程。

      广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行                          的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

进程和程序的区别
    a,程序是指令和数据的有序集合,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个          动态的概念。
    b,程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。
    c,进程是由进程控制块、程序段、数据段三部分组成;
    d,进程具有创建其他进程的功能,而程序没有。
    e,同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程,也就是说同一程序可以对应多个进          程。
    f,在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单元都是进程


程序并不能单独执行,只有将程序加载到内存中,系统为他分配资源后才能够执行,这种执行的程序称之为进程,也就是说进程是系统进行资源分配和调度的一个独立单位,每个进程都有自己单独的地址空间。所以说程序与进程的区别在于,程序是指令的集合,是进程运行的静态描述文本,而进程则是程序在系统上顺序执行时的动态活动。

但是进程存在着很多缺陷,主要集中在两点: 
(1).进程只能在同一时间干一件事情,如果想同时干两件事或多件事情,进程就无能为力了。 
(2).进程在执行的过程中如果由于某种原因阻塞了,例如等待输入,整个进程就会挂起,其他与输入无关的工作也必须等待输入结束后才能顺序执行。

为了解决上述两点缺陷,引入了线程这个概念。

线程是进程的一个实体,也是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,有时又被称为轻权进程或轻量级进程,相对进程而言,线程是一个更加接近于执行体的概念,进程在执行过程中拥有独立的内存单元,而线程自己基本上不拥有系统资源,也没有自己的地址空间,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),线程的改变只代表了 CPU 执行过程的改变,而没有发生进程所拥有的资源变化。除了CPU 之外,计算机内的软硬件资源的分配与线程无关,但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。

进程和线程的主要差别在于操作系统并没有将多个线程看作多个独立的应用,来实现进程的调度和管理以及资源分配。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些,对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程,每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口,但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制


操作系统的设计,因此可以归结为三点: 

(1)以多进程形式,允许多个任务同时运行; 
(2)以多线程形式,允许单个任务分成不同的部分运行; 
(3)提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
进程线程是操作系统中的两个重要概念。 进程是指一个程序在执行过程中分配到的内存空间和系统资源的总和,是资源分配的基本单位。每个进程都有自己独立的内存空间和系统资源,进程之间不能直接共享资源,只能通过进程间通信(IPC)来实现。 线程进程中的一个执行单元,一个进程可以包含多个线程,它们共享进程的内存空间和系统资源。线程之间的通信和共享变量比进程之间更加方便快捷。 区别: 1.资源分配:进程是资源分配的基本单位,而线程是CPU调度的基本单位。 2.独立性:进程之间是相互独立的,每个进程都有自己独立的内存空间和系统资源,而线程是在进程内部创建的,它们共享进程的内存空间和系统资源。 3.通信方式:进程之间通信需要用到进程间通信(IPC),如管道、消息队列、共享内存等,而线程之间通信和共享变量更加方便快捷。 联系: 1.进程是由操作系统管理和调度的,线程是在进程内部创建和管理的。 2.一个进程可以包含多个线程线程之间共享进程的内存空间和系统资源。 3.进程线程都可以并发执行,提高系统的资源利用率和响应速度。 总的来说,进程线程是相互依存、相互影响的关系,它们的区别在于资源分配和独立性,联系在于操作系统的管理和调度。在实际应用中,需要根据具体的情况选择进程线程来实现任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值