![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
进程
codingandthingking
这个作者很懒,什么都没留下…
展开
-
进程管理(七) 等待和终止进程
why wait() when exit() exit() 进程结束 wait() 子进程exit()时,用户空间的资源被回收,但是内核中的pcb还存在,在父进程调用wait()回收子进程pcb完成前,子进程处于僵尸态 如果父进程先于子进程退出,则祖先进程会定时扫描僵尸进程,代替原父进程完成对子进程pcb的回收 ...原创 2019-11-02 15:01:09 · 144 阅读 · 0 评论 -
进程管理(六) 加载和执行进程
exec() exec() 调用运行进程“加载”并执行一个新的程序 可以指定参数 如果调用成功,是同一个进程,但是执行了不同的程序 代码 堆、栈重写 fork() -> exec() fork() 将父进程的地址空间进行完整拷贝, exec() 将复制的地址空间覆盖 很显然前一步是多余的?如何优化? vfork() copyonwrite技术 fork() 时只复制元数据...原创 2019-11-02 14:47:38 · 156 阅读 · 0 评论 -
进程管理(五) 创建进程
fork();原创 2019-11-02 14:34:14 · 142 阅读 · 0 评论 -
进程管理(四) 上下文切换
why what how 所有进程共享cpu资源,为了使cpu利用率更高,基于调度算法进行进程上下文切换 上下文切换 context switch 上下文主要是指寄存器 包括程序计数器 栈指针 可以表示调用关系和局部变量位置 os通过调度算法和一组队列,就绪队列,i/o 队列,僵尸队列 选择pcb 进行加载和保存 save to pcb0 reload from pcb1 ...原创 2019-11-02 14:33:00 · 217 阅读 · 0 评论 -
进程管理(三) 线程
why what how 为什么要有线程? - 单进程性能问题 - 多进程间 资源共享,通信,进程创建,切换,结束带来的开销问题 线程的定义 进程中的一条执行流程,成为cpu调度的最小单元 同一个进程内的线程共享同一片地址空间,代码,数据,内存,文件,网络等资源 TCB 线程控制块 代替进程的执行过程 优点: 并发执行 共享数据 缺点: 一个线程崩溃,同一个进程内其他线程...原创 2019-11-02 14:18:04 · 76 阅读 · 0 评论 -
进程管理(二)生命周期
进程的生命期管理 进程创建 :系统启动init,或者 用户请求创建,或者运行程序系统调用 进程运行: os基于调度算法选择就绪进程来运行 进程等待: 进程自身阻塞自己 os将进程从运行态变为阻塞态,释放cpu 进程唤醒: 等待的资源得到满足,或者事件到达 被其他进程唤醒,因为自身不占用cpu 进程结束: 正常结束或者异常结束 被强制性杀死 (致命错误或者被其他进程杀死) os 通过一组队列来调...原创 2019-11-02 13:32:13 · 221 阅读 · 0 评论 -
进程管理(一)进程的描述
进程的定义 what and why? 定义:一个具有独立功能的程序在一个数据集合上的动态执行过程 为什么要有进程? 表示一个进程的多个实例; 进程的组成 code data pc 寄存器,堆,栈 一组系统资源(cpu,内存,打开的文件,网络等) 一系列表示进程状态的信息 程序和进程的关系 程序是进程产生的基础 每次运行程序产生一个新的进程 进程是程序功能的体现 进程通过调用...原创 2019-11-02 12:48:34 · 142 阅读 · 0 评论