1.程序和进程的差别在计算机上运行的程序是一组指令及指令参数的组合,指令按照既定的逻辑控制计算机运行。进程是运行着的程序,是操作系统执行的基本单位。进程的概念是操作系统最重要的核心概念之一。
线程则是为了节省资源而可以在同一个进程中共享资源的一个执行单位。
进程最初出现在Unix下,用于表示多用户多任务的操作系统环境下,应用程序在内存环境中的基本执行单元的概念。
C、C++等语言编写的源程序经相应编译器编译成可执行文件后,提交给计算机处理器运行。应用程序的运行状态称为进程。
进程从用户角度来看是应用程序的一个执行过程,从操作系统核心角度来看,进程代表的是操作系统分配的内存、CPU时间片等资源的基本单位,是为正在运行的程序提供的运行环境。
进程与应用程序的区别在于应用程序作为一个静态文件存储在计算机系统的磁盘等存储空间中,而进程则是处于动态条件下由操作系统维护的系统资源管理实体。
2.进程和线程的主要区别和联系如下:
进程是操作系统进行资源分配的基本单位,进程拥有完整的虚拟空间。进行系统资源分配时,除了CPU资源外,不会给线程分配独立的资源即线程所需要的资源需要共享。
线程是进程的一部分,如果没有进行进程分配,可以认为进程是单线程的;如果进程中建立了线程,则可认为进程是多线程的。
多线程和多进程是不同的概念,多个线程之间像内存、变量等资源可以通过简单的办法共享,但是多进程间的共享方式有限。
进程有进程控制表PCB,系统通过PCB对进程进行调度,线程有线程控制表TCB,但是TCP所表示的状态比PCB少得多。
3.进程间通信IPC
进程之间通信方式有多种,其中管道、共享内存和消息队列是最常用的方式。
4.进程同步
多个进程之间协作完成任务时,经常发生业务依赖,从而出现同步问题,Linux下进程同步方式主要由消息、信号量等。
阅读(616) | 评论(1) | 转发(0) |