![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Process
lamdoc
这个作者很懒,什么都没留下…
展开
-
进程相关概念
1. 进程是处于执行期的程序以及相关的资源的总称。进程和程序的区别: 运行的程序及其相关资源就叫进程。2. 进程特点:动态性并发性独立性异步性3. 进程三态图:就绪态阻塞态执行态4. 进程ID进程ID:(PID):标识进程的唯一数字父进程ID:(PPID)启动进程的用户ID:(UID)5. 进程互斥当有若干原创 2012-06-10 14:40:11 · 401 阅读 · 0 评论 -
并发(concurrency)与并行(parallelism)
并发和并行并不是一个意思。并行:是严格的多CPU同时执行。并发,并不是严格的同时执行,而是以时间片为单位交替执行,所以不需要多处理器。例子:一个并发程序是指能同时执行通常不相关的各种任务。以一个游戏服务器为例子:它通常是有各种组件组成,每种组件都跟外部世界进行着复杂的信息交互。一个组件有可能要处理多个用户聊聊;另外一些可能要处理用户的输入,并把最新状态反馈给用户;其它的原创 2013-11-07 11:10:00 · 516 阅读 · 0 评论 -
wait, WIFEXITED, WEXITSTATUS
wait的函数原型是: #include /* 提供类型pid_t的定义 */ #include pid_t wait(int *status)进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有转载 2013-04-07 13:42:55 · 388 阅读 · 0 评论 -
进程调度
进程调度 : 决定哪个程序投入运行,何时运行以及运行多长时间。多任务操作系统 : 能同时并发的交互执行多个进程的操作系统。多任务系统可以分为 :非抢占式多任务(cooperation multitasking)和抢占式多任务(preemptive multitasking).时间片(timeslice): 分配给每个可运行进程的处理器时间段。进程主动挂起自己的操作称为让步(yiel原创 2012-08-22 16:28:17 · 506 阅读 · 0 评论 -
进程与线程
1. 进程与线程基本概念进程是处于执行期的程序以及相关资源的总称。相关资源包括打开的文件,挂起的信号,内核内部数据,处理器及寄存器状态,一个或多个具有内存映射的内存地址空间,一个或多个执行线程,及存放全局变量的数据段。线程是进程中的活动对象。每个线程拥有一个独立的程序计数器,进程栈和一组进程寄存器。内核调度的对象时线程,而不是进程。在Linux系统中,通常调用fork()系原创 2012-08-21 12:39:07 · 519 阅读 · 0 评论 -
中断上下文与进程上下文对比
1. 进程上下文是指内核所处的一种操作模式,代表内核进程执行系统调用或者运行内核线程。在进程上下文中,可以通过 current 宏,关联当前进程。进程上下文可以睡眠,也可以调用调度程序。2. 当执行一个中断处理程序时,内核处于中断上下文(interrupt context)中.中断上下文和进程并没有什么关系,中断上下文不可以睡眠,也不可以调用可以睡眠的函数。中断处理程序必须原创 2012-08-08 14:42:09 · 483 阅读 · 0 评论 -
进程上下文概念 --- context
聊天时经常听别人说到上下文切换,一直不知道什么是上下文,怎么个切换法。今天百度了下才知道,上下文切换,一般都是指进程的上下文切换。当一个进程在执行时,CPU中所有寄存器的值、进程的状态以及堆栈中的内容被称为该进程的上下文。也就是关于当前进程的寄存器内容以及内存页表的详细信息等等内容,一句话概括也就是关于描述进程的信息。即TTS和CR3等中的内容。当内核需要切换到另一个进程时,它原创 2012-07-19 13:17:57 · 413 阅读 · 0 评论 -
pid_uid_gid
pid: process id,进程IDppid: parent process id,父进程IDuid: real user id, 用户IDeuid: effective user id,有效用户IDgid: real group id,组IDegid: effictive group id,有效组ID下面来看一下简单程序的输出:#include #inclu原创 2012-06-25 11:36:59 · 337 阅读 · 0 评论 -
进程控制相关的几个函数
通常,创建新的进程,都是为了立即执行新的 ,不同的程序。所以一般都是fork()系统调用创建新进程,然后使用exec()系统调用函数组,来创建新的地址空间,把新的程序载入进去。最终,通过exit()系统调用退出进程,这个函数会终结进程,并释放该进程占用的资源。父进程可以通过wait()系统调用,查看子进程是否结束。下面是几个进程管理相关的几个函数:1. 获取ID原创 2012-06-10 16:45:05 · 392 阅读 · 0 评论 -
中断保存现场
通常,中断响应时硬件已经保存了PC和PS的内容,但是还有一些状态环境信息需要保存起来。如果不做保存处理,那麽即使以后能按断点地址返回到被中断程序,但由于环境被破坏,原程序也无法正确运行。中断响应时硬件处理时间很短,所以保存现场工作可由软件来协助硬件完成,并且在进入中断处理程序时就立即去做。对现场信息的保存方式是多样化的,常用方式有两种:一种是集中式保存:在内存的系统区中设置一个原创 2013-11-13 13:50:04 · 4287 阅读 · 1 评论