任务、程序、进程、线程的概念和联系

程序

程序只是一组指令的有序集合

任务

1、概念?
是最抽象的,是一个一般性的术语,指由软件完成的一个活动。一个任务既可以是一个进程,也可以是一个线程。简而言之,它指的是一系列共同达到某一目的的操作。例如,读取数据并将数据放入内存中。这个任务可以作为一个进程来实现,也可以作为一个线程(或作为一个中断任务)来实现。

2、什么是单任务?
一个程序执行完之后,才可以执行下一个任务

3、什么是多任务?
系统可以响应多个任务,也就是说:一个任务执行过程中,可以暂停执行,然后cpu可以执行其他任务。

错误理解:同时执行多个任务。下面来解释一下:
CPU单核:一个cpu核同一时刻只能执行一条语句,但是cpu单核也可以执行多任务,叫做并发执行。

4、多任务:在任务进行切换时,分为抢占式、非抢占式两种
——抢占式(实时性高):中断
——非抢占式(非实时性):时间片轮转,也就是说给每个任务使用cpu相同的时间。

进程

1、什么是进程? (进程VS程序)
进程是一个程序执行的一次过程,是操作系统执行的最小执行单位,一个程序会有多个进程。
简单来说,所有的程序都在硬盘上,只有./a.out执行这个程序时,它才被加载到内存中,这就叫进程。当程序执行结束后,进程也就消失了。进程是动态的,程序是静态的。

2、linux进程特点:
——每个进程都有独立的运行空间,(linux 进程虚拟地址空间)也就是每个进程都有独自的虚拟地址空间,所有的数据保存在自己独立的空间内。
——虚拟地址空间作用?
在所有计算机中,内存都是稀缺资源,保护稀缺资源的方法就是:抽象虚拟的物体来进行代替,操作虚拟的物体实际上是在操作稀缺资源。

线程

线程(tread)则是某一进程中一路单独运行的程序。也就是说,线程存在于进程之中。一个进程由一个或多个线程构成,各线程共享相同的代码和全局数据,但各有其自己的堆栈。由于堆栈是每个线程一个,所以局部变量对每一线程来说是私有的。

一个进程和一个线程最显著的区别是:线程有自己的全局数据。线程存在于进程中,因此一个进程的全局变量由所有的线程共享。由于线程共享同样的系统区域,操作系统分配给一个进程的资源对该进程的所有线程都是可用的,正如全局数据可供所有线程使用一样 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值