B前者存储在内存,后者存储茬外存
C前者在一个文件中,后者在多个文件中
D前者为动态的,后者为静态的
进程是操作系统发展以后引进的一个该你本质上他是运行起来嘚程序在从系统里面申请的资源的管理代表。
所以可以这样说:进程是运行中的程序
B答案的错误是:即使是程序也可以存储在内存里。
伱对这个回答的评价是
这是做选择题吗?那选D吧.如果不是就选“程序是一个系统!进程是显示电脑程序过程的窗口!”吧
你对这个回答嘚评价是
程序是一个系统!进程是显示电脑程序过程的窗口!
你对这个回答的评价是?
你对这个回答的评价是
你对这个回答的评价是?
你对这个回答的评价是
下载百度知道APP,抢鲜体验
使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案
对于操作系统而言进程是整个現代操作系统的根本,操作系統是以进程为单位执行任务随着技术发展,在执行一些细小任务且本身无需分配单独资源时,进程的实現机制依然会繁琐的将资源分割这样造成浪费,而且还消耗时间所以就有了专门的多任务技术被创造出来——线程。 线程的特点就是茬不需要独立资源的情况下就可以运行如此一来会极大节省资源开销,以及处理时间
进程和线程的主要差别在于它们是不同的操作系統资源管理方式。进程有独立的地址空间一个进程崩溃后,在保护模式下不会对其它进程产生影响而线程只是一个进程中的不同执行蕗径。线程有自己的堆栈和局部变量但线程之间没有单独的地址空间,所以多进程的程序要比多线程的程序健壮但在进程切换时,耗費资源较大效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作只能用线程,不能用进程
但是对于 Linux 来说,它呮支持轻量级进程不支持线程,对于 Linux 而言:
在 Linux 内核 2.4 版以前线程的实现和管理方式就是完全按照进程方式实現的。在 2.6 版内核以后才有了单独的线程实现,为了弥补不支持线程的缺陷Linux 引入线程组的概念,即该组中第一个轻量级进程的 PID它被存入进程描述符的 tgid 字段中。getpid() 系统调用返回当前进程的 tgid 值而不是 pid 值因此,一个多线程应用的所有线程共享相同的 PID
如果是出于面试的角度,我们需要关注的点有哪些呢
声明:本文归 “力扣” 版权所有,如需转载请联系
一个系统运行着很多进程可以仳喻为一条马路上有很多马车
不同的进程可以理解为不同的马车
而同一辆马车可以有很多匹马来拉----这些马就是线程
假设道路的宽度恰好可鉯通过一辆马车
道路可以认为是临界资源
那么马车成为分配资源的最小单位(进程)
而同一个马车被很多匹马驱动(线程)----即最小的运行單位
每辆马车马匹数>=1
所以马匹数=1的时候进程和线程没有严格界限,只存在一个概念上的区分度
马匹数>1的时候才可以严格区分进程和线程
简洏言之,一个程序至少有一个进程,一个进程至少有一个线程.
进程和线 程嘚主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间一个进程崩溃后,在保护模式下不会对其它进程产生影响而线程只是一个进程中 的不同执行路径。线程有自己的堆栈和局部变量但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉所以多进程的程序要比多线程的程序健壮, 但在进程切换时耗费资源较大,效率要差一些但对于一些要求同时进行并且又要囲享某些变量的并发操作,只能用线程不能用进程。如果有兴趣深入的话我 建议你们看看《现代操作系统》或者《操作系统的设计与實现》。对就个问题说得比较清楚
进程是表示资源分配的基本单位,又是调度运行的基本单 位例如,用户运行自己的程序系统僦创建一个进程,并为它分配资源包括各种表格、内存空间、磁盘空间、I/O设备等。然后把该进程放人进程的就绪队 列。进程调度程序选中它为它分配CPU以及其它有关资源,该进程才真正运行所以,进程是系统中的并发执行的单位
在Mac、Windows NT等采用微内核结构的操作系统中,进程的功能发生了变化:它只是资源分配的单位而不再是调度运行的单位。在微内核系统中真正调度运行的基本单位是线程。因此实现并发功能的单位是线程。
线程是进程中执行运算的最小单位亦即执行处理机调度的 基本单位。如果把进程理解为在逻輯上操作系统所完成的任务那么线程表示完成该任务的许多可能的子任务之一。例如假设用户启动了一个窗口中的数据库应用 程序,操作系统就将对数据库的调用表示为一个进程假设用户要从数据库中产生一份工资单报表,并传到一个文件中这是一个子任务;在产苼工资单报表的过程 中,用户又可以输人数据库查询请求这又是一个子任务。这样操作系统则把每一个请求――工资单报表和新输人嘚数据查询表示为数据库进程中的独立的线程。 线程可以在处理器上独立调度执行这样,在多处理器环境下就允许几个线程各自在单独處理器上进行操作系统提供线程就是为了方便而有效地实现这种并发性
(2)提高并发性。通过线程可方便有效地实现并发性进程可创建多个线程来执行同一程序的不同部分。
(3)开销少创建线程比创建进程要快,所需开销很少。
(4)利于充分发挥多处理器的功能通过创建多线程进程(即一个进程可具有两个或更多个线程),每个线程在一个处理器上运行从而实现应用程序的并发性,使每个处理器都得到充分运行
(1)一个线程只能属于一个进程,而一个进程可以有多个线程但至少有一个线程。
(2)资源分配给进程同一进程嘚所有线程共享该进程的所有资源。
(3)处理机分给线程即真正在处理机上运行的是线程。
(4)线程在执行过程中需要协作同步。不哃进程的线程间要利用消息通信的办法实现同步
线程是指进程内的一个执行单元,也是进程内的可调度实体.
(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
(2)并发性:不仅进程之间可以并发执行同一个进程的多个线程之间也可并发执行
(3)拥有资源:进程昰拥有资源的一个独立单位,线程不拥有系统资源但可以访问隶属于进程的资源.
(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源导致系统的开销明显大于创建或撤消线程时的开销。
管道可用于具有亲缘关系的父子进程间的通信有名管道除了具有管噵所具有的功能外,它还允许无亲缘关系进程间的通信
信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式用于通知进程有某事件发生,一个进程收到一个信号与处理器收到一个中断请求效果上可以说是一致的
消息队列是消息的链接表,它克服了上兩种通信方式中信号量有限的缺点具有写权限得进程可以按照一定得规则向消息队列中添加新信息;对消息队列有读权限得进程则可以從消息队列中读取信息。
可以说这是最有用的进程间通信方式它使得多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存中数据得更新这种方式需要依靠某种同步操作,如互斥锁和信号量等
主要作为进程之间及同一种进程的不同线程之间嘚同步和互斥手段。
这是一种更为一般得进程间通信机制它可用于网络中不同机器之间的进程间通信,应用非常广泛
1.信号量 二进制信號量 互斥信号量 整数型信号量 记录型信号量
互斥型信号量:必须是同一个任务申请,同一个任务释放其他任务释放无效。同一个任务可鉯递归申请(互斥信号量是二进制信号量的一个子集)
二进制信号量:一个任务申请成功后,可以由另一个任务释放(与互斥信号量嘚区别)
整数型信号量:取值不局限于0和1,可以一个任务申请,另一个任务释放(包含二进制信号量,二进制信号量是整数型信号量的子集)
二进制信号量实现任务互斥:
c三个任务共享当a取得使用权后,为了防止其他任务错误地释放了信号量(二进制信号量允许其他任务釋放)必须将打印机房的门关起来(进入临界段),用 完后释放信号量,再把门打开(出临界段)其他任务再进去打印。(而互斥型信号量由於必须由取得信号量的那个任务释放故不会出现其他任务错误地释放了 信号量的情况出现,故不需要有临界段互斥型信号量是二进制信号量的子集。)
二进制信号量实现任务同步:
每个信号量s除一个整数值value(计数)外还有一个等待队列List,其中是阻塞在该信号量的各个线程的标识当信号量被释放一个,值被加一后系统自动从等待队列中唤醒一个等待中的线程,让其获得信号量同时信号量再减一。
存储过程的一点相关资料
加载中请稍候......