操作系统
文章平均质量分 68
静看星辰变
我要成为像凯撒一样的男人
展开
-
【Java多线程】银行家算法
目录银行家算法中的数据结构算法过程安全性算法以下内容摘自:汤子瀛的《计算机操作系统》第三版。最有代表性的避免死锁的算法,是 Dijkstra 的银行家算法。为实现银行家算法,系统中必须设置若干数据结构。银行家算法中的数据结构(1) 可利用资源向量 Available。这是一个含有 m 个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置...原创 2020-04-06 19:28:44 · 740 阅读 · 0 评论 -
【多、单】生产者消费者模式——Java
实现代码下面是多生产者多消费者的实现,import java.util.ArrayDeque;import java.util.Deque;/**生产者、消费者。单生产者、消费者,多生产者消费者。要注意以下三点: * 如果队列为空,则消费者阻塞 * 如果队列满了,则生产者阻塞 * 任何时候,只能有一个生产者或者消费者访问队列 * @author zkw * @date 2021/1/4 10:07 */public class ProducerAn原创 2021-01-04 11:54:49 · 882 阅读 · 0 评论 -
fork()和exec函数簇
介绍功能:创建一个新的进程返回:子进程中为0,父进程中为子进程ID,出错为-1。说明:由fok创建的新进程被称为子进程( child process)。 父、子进程完全一样(代码、数据),子进程从fork内部开始执行,fork返回子进程的pid后,接着执行下一条语句该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是子进程的进程|D。 一般来说,在fork之后是父进程先执行还是子进程先执行是不确定的。这取决于内核所使用的调度算法。继承使用fork函原创 2020-12-26 18:35:50 · 470 阅读 · 0 评论 -
【操作系统】王道视频笔记2
3.1.10 基本分段存储管理进程的地址空间:按照程序自身的逻辑关系划分为若干个段,每个段都有一个段名(在低级语言中,程序员使用段名来编程),每段从0开始编址。 内存分配规则:以段为单位进行分配,每个段在内存中占据连续空间,但各段之间可以不相邻。分段分段系统的逻辑地址结构由段号(段名)和段内地址(段内偏移量)所组成。段号的位数决定了每个进程最多可以分几个段;段内地址位数决定了每个段的最大长度是多少。在下面例子中,若系统是按字节寻址的,则段号占16位,因此在该系统中,每个进程最多有2^16原创 2020-12-26 09:18:20 · 1602 阅读 · 0 评论 -
【操作系统】王道视频笔记1
1.1.1 操作系统的概念、功能和目标1.1.2 操作系统的特征1.1.3 操作系统的发展与分类手工操作阶段输入和输出都是一张打了孔的纸袋(有孔是1,无孔是0),速度很慢,而CPU处理速度很快,这就是矛盾的。单道批处理系统计算机处理打孔纸带的速度很慢,所以这里引入了中间介质磁带,计算机读写磁带的速度比读写纸带的速度快很多,这就提高了CPU的利用率。多道批处理系统多道批处理系统及之前的系统都没有人机交互,计算机在执行程序的过程中用户不能进行操作。分时操作原创 2020-12-24 08:55:48 · 1155 阅读 · 0 评论 -
【操作系统】死锁的原因、必要条件、检测、预防、解除
1 前言所谓死锁(Deadlock),是指多个进程在运行过程中因争夺资源而造成的一种僵局(DeadlyEmbrace),当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进,同时它们所占用的cpu、内存等资源也得不到释放。2 死锁产生的原因2.1 竞争资源引起进程死锁非剥夺性资源,当系统把这类资源分配给某进程后,再不能强行收回,只能在进程用完后自行释放,如磁带机、打印机...原创 2020-04-06 20:04:06 · 2000 阅读 · 0 评论 -
【操作系统】存储器笔记
目录存储器结构可执行寄存器主存储器寄存器高速缓存磁盘缓存存储器结构对于通用计算机而言,存储层次至少应具有三级:最高层为CPU寄存器,中间为主存,最底层是辅存。这三层还可进一步划分(如下图),其中CPU寄存器和主存属于操作系统的管辖范畴,掉电后它们中存储的信息不再存在;而辅存则属于持久化保存介质,它们存储的信息会被长期保存。可执行寄存器在计算机系统的存储层次中,CPU寄存器和主存又被称为可执行存储器。进程可以在很少的时钟周期内使用一条load或 store指令对可执原创 2020-11-07 21:26:46 · 251 阅读 · 0 评论 -
5种网络IO模型:阻塞IO、非阻塞IO、异步IO、多路复用IO、信号驱动IO
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不...转载 2020-04-17 12:01:25 · 328 阅读 · 0 评论 -
【操作系统】进程和线程调度
进程调度进程调度的对象是进程或内核级线程,是最基本的一种调度。用于决定就绪队列中的哪个进程(或内核级线程,为叙述方便,以后只写进程)应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作。1 主要功能和过程保存处理机的现场信息。在进程调度进行调度时,首先需要保存当前进程的处理机的现场信息,如程序计数器、多个通用寄存器中的内容等,将它们送入该进程的进程控制块(PCB)中的相应单...原创 2020-03-20 13:38:38 · 6109 阅读 · 3 评论