1.4k 1 分鍾

# FCFS 谁先来,谁先被 CPU 调度,不存在抢占 优势:简单 弊端:如果是长作业,需要等待很长时间,其他进程才能分配到 CPU 资源 # SJF 谁的进程时间短,谁先被调度,不存在抢占 优势:整体等待的时间缩短了 弊端:当长时间的进程先到达时,后面的进程需要等待 # STCF 谁先完成,谁先被调度,存在抢占 优势:后面来的进程可以抢占前面的进程时间, CPU 先调度完成时间短的,再切回去调度完成时间长的 弊端:响应时间太长了 (响应时间指的是从用户发出请求到首次产生响应所用时),长作业一直无法获得资源 # 单处理器分时调度 基本假设 进程是 while(1) do_sth()...
1.6k 1 分鍾

Show using a short BASH script how to prevent a process from responding to a <CTRL-C>(SIGINT) for 20 seconds and then reenable <CTRL-C> and remain in a loop until the user hits <CTRL+C> # 关于 trap 当进程接收到信号时,将调用相应的 trap 。 trap 命令允许用户指定一个命令,或一个函数,即当 shell...
1.1k 1 分鍾

不得不谈一下 write 和 read 及其参数 # read() int read(int fd,char* buf,int count); 从文件中向缓冲区中读取字节 返回值 大于0 :成功读取的字节数 等于0 :到达文件末尾 -1 :发生错误,通过 errno 确定具体错误解释 # write() # 函数原型 #include "unistd.h"ssize_t write(int fd,const void *buf,size_t count);# 功能 从缓冲区向 fd 所指向的文件写入数据 write 返回值 调用成功 返回所写的字符个数 调用失败 返回 -1...
10k 9 分鍾

# unamed pipe 既然可以通过 “文件描述符” 来操作管道,那么他就是一个文件(管道文件),但无名管道文件比较特殊,他没有文件名。 # 函数原型 #include "unistd.h"int piep(int fd[2]);# 功能 创建一个用于亲缘进程(父子进程)之间通信的无名管道(缓存),并将管道与两个读写文件描述符关联起来。 无名管道只能用于亲缘进程间通信,为什么只能用于亲缘进程之间通信呢? 因为,没有文件名,进程没有办法通过 open 打开管道文件,从而得到文件描述符,所以只有一种办法,那就是父进程先调用 pipe...
2.3k 2 分鍾

# 要求 哲学家从 0 到 4 按顺时针编号。请实现函数 void wantsToEat(philosopher, pickLeftFork, pickRightFork, eat, putLeftFork, putRightFork): philosopher 哲学家的编号 pickLeftFork 和 pickRightFork 表示拿起左边或右边的叉子。 eat 表示吃面 putLeftFork 和 putRightFork 表示放下左边或右边的叉子 由于哲学家不是在吃面就是在想着啥时候吃面,所以思考这个方法没有对应的回调。 给你 5...