进程、线程、程序、任务和作业的联系
进程、线程、程序、任务和作业的联系
⼀、进程和线程关系
1. 调度。在传统操作系统中,拥有资源和独⽴调度的基本单位都是进程,在引⼊线程的操作系统中,线程是独⽴调度的基本单位,进程
是拥有资源的基本单位。这样⼀来,在同个进程内,线程之间的切换,不会引起进程之间的切换,因为进程每次切换都是有环境切换花销的。只有不同进程之间的线程切换,才会引起进程切换,2种⽅式平均下来减少环境切换,也就提⾼了系统并发度。
2. 拥有资源。不论是传统操作系统还是引⼊线程的操作系统,进程都是拥有资源的基本单位,⽽线程不拥有系统资源(只有丁点),如
果线程设置系统资源,那同⼀进程内的线程切换也会有较⼤的环境切换,所以线程不拥有系统资源
3. 并发性。进程之间可以并发,线程之间也可以并发。
4. 系统开销。创建或者撤销进程的时候,系统都要给它分配或者回收资源,⽐如内存空间,I/O设备等,相⽐线程的创建和撤销,系统开
销很⼩。另外,统⼀进程内的多个线程共享进程的地址空间,所以这些线程之间的同步和通信很容易实现,不需要操作系统⼲预。5. 地址空间和其他资源。进程的地址空间之间互相独⽴,统⼀进程的各个线程共享进程的资源,A进程与B进程之间他们的线程是不可见
的。一个线程可以包含多个进程
6. 通信⽅⾯。进程间通信需要进程同步和互斥⼿段,保证数据的⼀致性,然后线程之间通信可以通过直接写,直接读进程(进程由
PCB、数据段、程序段组成)的数据段,⽐如全局变量,来进⾏通信。
⼆、进程和程序关系
1. 进程是程序的⼀次运⾏,进程是动态的,程序是静态的
2. 程序只占⽤磁盘空间,进程需要分配内存,CPU等系统资源
3. 进程由PCB、数据段、程序段组成,程序段就是上⽂指的程序
4. ⼤⽩话来说,进程就是程序运⾏的载体
三、线程和任务关系(或进程和任务关系)
1. 多线程,是指⼀份程序代码可以启动多个线程同时运⾏,每个线程可以执⾏不同的任务。⽐如QQ应⽤,视频聊天的同时传输⽂件
2. 多线程是针对⼀份程序⽽⾔,然⽽线程可以执⾏不同的任务
3. ⼀个任务可能由多个进程或者线程完成
4.
四、进程和作业关系
1. 作业是从⽤户⾓度出发的,它是由⽤户提交,以⽤户任务为单位,操作系统没有作业概念
2. 进程是从操作系统出来的,它是由系统⽣成,是操作系统的资源分配和独⽴运⾏的基本单位
欢迎评论交流
欢迎评论交流
欢迎评论交流
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论