操作系统
文章平均质量分 95
Jade Jade Cabbage
这个作者很懒,什么都没留下…
展开
-
C语言实现应用 Peterson 算法原理设计实现共享内存互斥
代码链接:https://gitee.com/hurq5/os-labwork/blob/master/LabWeek14/code/peterson_shm.c应用 Peterson 算法原理设计实现共享内存互斥。1. 相关知识点:Peterson算法简单介绍:Peterson算法是一种用于互斥的并发编程算法,该算法允许两个或多个进程共享一次使用的资源而不会发生冲突,仅使用共享内存进行通信。算法实现:该算法使用两个变量flag和turn。一个flag[n]的值true表示进程n想进入临原创 2022-03-14 15:18:41 · 2266 阅读 · 0 评论 -
进程同步:C语言互斥锁,无名信号量,有名信号量范例,用信号量解决线程池分配的互斥问题
所有代码链接:https://gitee.com/hurq5/os-labwork/tree/master/LabWeek15/code1 相关代码解释和运行1.1 alg.18-1-syn-fetch-1.c1.1.1 相关知识点__sync_fetch_and_add和 __sync_add_and_fetch都是原子性加法操作函数,可以在线程互斥的前提下对全局变量进行自加,不同的是___sync_fetch_and_add返回未进行加法的变量的值,而__sync_add_and_fetch返回原创 2022-03-14 15:14:59 · 1562 阅读 · 0 评论 -
C语言实现CPU 调度:实现简单调度策略:FCFS、SJB、Priority,包括抢占式和非抢占式
1 相关要求的实现:1.1 要求1:内容: 创建一些 Pthread 线程任务,建立一个管理链队列,结点内容起码包括到达时间、WCT、优先级、调度状态(运行、就绪、阻塞)等调度参数;实现: 程序实现的管理链队列节点如下,设置该节点的头结点为全局变量,方便添加线程任务 /*线程任务状态*/ #define WAITING 0 #define READY 1 #define RUNNING 2 /*管理链队列节点*/ typedef struct threadNode{ long a原创 2022-03-14 15:07:45 · 1868 阅读 · 0 评论 -
虚拟存储管理:C语言实现请求页面置换算法,包括FIFO、LRU (stack and matrix implementation)、Secondchance
1 实验内容:虚拟存储管理。编写一个 C程序模拟实现请求页面置换算法,包括FIFO、LRU (stack and matrix implementation)、Secondchance,并设计输入用例验证结果。2 程序所涉及到的算法介绍以及相关实现函数在计算机操作系统使用分页的虚拟内存管理,页面置换算法决定哪些内存页页出,有时也被称为换出,或写入到磁盘上,当一个页面被分配的内存需求。当请求的页面不在内存中(页面错误)并且空闲页面无法用于满足分配时,就会发生页面替换,要么是因为没有页面,要么是因为空闲页原创 2022-03-14 15:02:44 · 3548 阅读 · 2 评论