
C++
文章平均质量分 51
juunnry
学习是一种生活,工作是一种享受
展开
-
操作系统:读者-写者问题
读者写者问题:哲学家就餐问题对于互斥访问有限资源的竞争问题(如I/O设备)一类的建模过程十分有用。另一个著名的问题是读者-写者问题(Courtois 等人,1971),它为数据库访问建立了一个模型。例如,设想一个飞机订票系统,其中有许多竞争的进程试图读写其中的数据。多个进程同时读数据库是可以接受的,但如果一个进程正在更新(写)数据库,则所有的其他进程都不能访问该数据库,即使读操作也不行。所有等...原创 2018-11-18 15:04:58 · 1763 阅读 · 0 评论 -
操作系统:银行家算法避免死锁
银行家算法是用来避免死锁的,该方法将系统的状态分为安全和不安全,只要系统处于安全状态,便可避免死锁的发生。之所以成为银行家算法,是由于该算法能用于银行系统现金贷款的发放而得名。安全状态的定义为:系统按照某种进程顺序,如,来为进程分配资源,直到最大需求,使每个进程都能顺序完成,此时称系统处于安全状态。银行家算法是由大牛Dijkstra提出的,为实现银行家算法,系统中应该设置若干数据结构:...原创 2018-11-18 15:07:36 · 1359 阅读 · 0 评论 -
段页式存储管理方式
基本分页存储管理方式(1)页面与页表:页面将一个进程的逻辑地址空间分成若干个大小相等的片,分页地址中页号和页内地址的计算P=INT[A/L],d=[A] MOD L;页表:系统为每个进程建立了一张页面映像表简称页表;(2)地址变换机构:实现从逻辑地址到物理地址的转换 请求分页存储管理方式页表中增加了状态位、访问字段位、修改位增加了缺页中断机构,与一般的中断有明显区别:(...原创 2018-11-18 15:08:39 · 1738 阅读 · 0 评论 -
编程珠玑:位向量
位图或位向量图作为一个集合,表示的这样的一个数据结构: 用字符串 0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 表示集合 {1,2,3,5,8,13}. 位图的应用需要数据有如下的特性: 1.输入数据限制在相对较小的范围内; 2.数据没有重复; 3.除了单一整数外,没有任何其他关联数据 假如只有大约1M内存,...原创 2018-11-18 14:55:45 · 1845 阅读 · 0 评论 -
算法二十五:可连接成的最长字符串(使用Floyd算法)
问题:有n个长为m+1的字符串,如果某个字符串的最后m个字符与某个字符串的前m个字符匹配,则两个字符串可以联接,问这n个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误。分析:使用Floyd算法,设图G的顶点为V={1,2,...,n},对某个顶点k考虑顶点的一个子集,对任意一对顶点i,j属于V,考虑从i到j且中间顶点皆属于{1,2,...,k}的所有路径,假设p是其中一条最小权值...原创 2018-11-18 15:02:14 · 505 阅读 · 0 评论 -
数据结构基础:拓扑排序
对一个有向无环图G进行拓扑排序,是将G中所有的顶点排成一个线性序列,使得图中任意一对顶点u和v,若<u,v>属于E(G),则u在线性序列中出现在v之前。方法:1. 在有向图中选取一个没有前驱的顶点输出值2. 从图中删除该顶点和所有以它为尾的弧3. 重复上述过程,直到所有顶点均输出代码:TopoSort.h#ifndef TOPOSORT#define T...原创 2018-11-18 15:03:31 · 363 阅读 · 0 评论