操作系统
文章平均质量分 77
adb87
这个作者很懒,什么都没留下…
展开
-
Linux进程间通信——共享内存
相关系统调用1.创建/打开已存在共享内存区——shmget() shmget(key, size, flag); 返回内存区标识号。2.映射共享内存区和进程虚拟地址空间——shmat() shmat(id, addr, flag); 返回映射地址。 id:由shmget()返回,用来标识某共享内存区。 addr:用户希望映射到哪块虚拟地址,通常设为NULL。 ...原创 2018-04-22 19:59:14 · 152 阅读 · 0 评论 -
银行家算法——死锁避免(C++代码实现)
安全状态如果存在一个安全序列,那么系统处于安全状态。对于进程顺序<P1,P2,...,Pn>,有如下 Pi-need <= Pj-hold + All-available则这一顺序为安全序列。可以保证所有进程按此顺序执行后,资源分配不会发生死锁。银行家算法·数据结构1)可利用资源向量Available是个含有m个元素的数组,其中的每一个元素代表一类可利用的资...原创 2018-04-21 12:45:43 · 4410 阅读 · 0 评论 -
CPU调度算法C++模拟实现——(FCFS,SJF,RR)
FisrtComeFirstServe——先到先服务算法按照进程进入就绪队列的顺序,来执行进程。用一个队列维护即可。ShortestJobFirst——短作业优先算法我实现的是非抢占shi...原创 2018-06-13 21:09:10 · 9027 阅读 · 2 评论 -
吸烟者问题C++实现
问题描述抽烟者问题。假设一个系统中有三个抽烟者进程,每个抽烟者不断地卷烟并抽烟。抽烟者卷起并抽掉一颗烟需要有三种材料:烟草、纸和胶水。一个抽烟者有烟草,一个有纸,另一个有胶水。系统中还有两个供应者进程,它们无限地供应所有三种材料,但每次仅轮流提供三种材料中的两种。得到缺失的两种材料的抽烟者在卷起并抽掉一颗烟后会发信号通知供应者,让它继续提供另外的两种材料。这一过程重复进行。问题分析1.考虑到:有可...原创 2018-06-01 21:15:47 · 3864 阅读 · 0 评论