
操作系统
文章平均质量分 69
一叶一菩提魁
这个作者很懒,什么都没留下…
展开
-
死锁的条件和处理方法
必要条件互斥:每个资源要么已经分配给了一个进程,要么就是可用的。占有和等待:已经得到了某个资源的进程可以再请求新的资源。不可抢占:已经分配给一个进程的资源不能强制性地被抢占,它只能被占有它的进程显式地释放。环路等待:有两个或者两个以上的进程组成一条环路,该环路中的每个进程都在等待下一个进程所占有的资源。处理方法主要有以下四种方法:鸵鸟策略死锁检测与死锁恢复死锁预防死锁避免鸵鸟策略把头埋在沙子里,假装根本没发生问题。因为解决死锁问题的代价很高,因此鸵鸟策略这种不采取任务措施的原创 2022-03-21 18:06:03 · 1418 阅读 · 0 评论 -
进程通信方式
1. 管道管道是通过调用 pipe 函数创建的,fd[0] 用于读,fd[1] 用于写。#include <unistd.h>int pipe(int fd[2]);它具有以下限制:只支持半双工通信(单向交替传输);只能在父子进程或者兄弟进程中使用。2. FIFO也称为命名管道,去除了管道只能在父子进程中使用的限制。#include <sys/stat.h>int mkfifo(const char *path, mode_t mode);int mkf原创 2022-03-21 16:50:00 · 263 阅读 · 0 评论 -
线程和进程区别
1. 进程进程是资源分配的基本单位。进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。下图显示了 4 个程序创建了 4 个进程,这 4 个进程可以并发地执行。2. 线程线程是独立调度的基本单位。一个进程中可以有多个线程,它们共享进程资源。QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 HTTP 请求线程、事件响应线程、渲染线程等等,线程的并发执行使得在浏览器中点击一个新链接从而发起原创 2022-03-21 16:43:08 · 202 阅读 · 0 评论