操作系统
只想躺平的小勺子
别定义我,我颠覆想象
展开
-
进程调度算法
1. 头文件#include <conio.h>#include <stdlib.h>#include <stdio.h>#include <io.h>#include <string.h>#define MAX_PROCESS 10int process_number=0; //下一个可用的进程编号typedef struct pcb{ struct pcb *next;原创 2022-01-18 21:00:00 · 1621 阅读 · 1 评论 -
动态异长分区内存分配与去配算法的设计-最先适应算法
头文件 variable_partition.h 的清单#include <windows.h>#include <conio.h>#include <stdlib.h>#include <stdio.h>#include <io.h>#include <string.h>#define MAX_THREAD 3typedef struct freearea{ //表示空闲区域的原创 2022-01-14 14:48:32 · 2467 阅读 · 0 评论 -
采用有序分配法预防死锁的哲学家就餐问题
1 设计目的理解死锁的概念,掌握死锁预防方法。死锁是进程并发执行过程中可能出现的现象,哲学家就餐问题是描述死锁的经典例子。为了防止死锁,可以采用资源有序分配法。资源有序分配法是指事先将所有资源类全排序, 即赋予每一个资源类一个唯一的整数,规定进程必需按照资源编号由小到大的次序申请资源。在哲学家就餐问题中,要采用资源有序分配法只需规定每个哲学家先申请左右两根筷子中编号小的筷子,再申请编号大的筷子。2 设计要求利用多线程技术编写哲学家就餐程序,演示采用死锁防止方法后不产生死锁的情况。3 设计原创 2022-01-14 14:40:18 · 3165 阅读 · 0 评论 -
哲学家就餐问题与死锁
程序结构设计程序需要六个线程,主线程用于显示主菜单,接收用户的功能选择;五个哲学家线程用于模拟哲学家的活动,即不停地思考、饥饿、进食。相邻的两个哲学家线程需要共享他们中间的同一根筷子,因此对每一根筷子的使用要互斥,用互斥体数组h_mutex_chopsticks来实现。主线程创建五个哲学家线程后要等待所有哲学家结束,用线程句柄数组h_thread来表示五个线程,主线程通过等待这五个线程句柄来实现同步。算法设计下面给出主要函数的算法描述。(1)deadlock_philosopher函数{原创 2022-01-14 14:25:37 · 785 阅读 · 0 评论 -
操作系统复习第八章
第八章 文件系统文件的物理组织顺序结构:一个文件占有若干连续的磁盘块优点:速度快,节省空间 缺点:长度变化困难链接结构: 一文件可存于不连续块中,块间以指针相连。优点:节省空间,长度变化容易。 缺点:随机访问速度慢。索引结构:一文件可存于不连续块中,块号记在索引块中优点:速度快,长度变化容易 缺点:索引块占空间...原创 2022-01-09 12:57:47 · 93 阅读 · 0 评论 -
操作系统复习第七章
第七章 虚拟存储系统常用页面替换算法最佳淘汰算法(OPT):淘汰将来最长时间以后才用到的,效率最高,但是不可实现先进先出算法(FIFO):淘汰最先调入的最近最少使用算法(LRU):使用过最久的先淘汰,淘汰最近一次访问距当前时间最长的最近不用的先淘汰(not used recently):淘汰最近一段时间未用到的最不经常使用算法(LFU): 淘汰使用次数最少的最频繁使用算法(MFU):淘汰使用次数最多的二次机会算法(second chance):淘汰装入最久且最近未被访问的页面时钟算法(cl原创 2022-01-09 12:55:13 · 339 阅读 · 0 评论 -
操作系统复习第六章
第六章 主存储管理内存分区按分区时刻分:静态分区/动 按分区大小分:等长/异长静态 + 等长:页式、段页式(表示:字位映像图/空闲页面表-链表/空闲页面链)字位映像图 空闲页面表-链表 空闲页面链表动态 + 异长:段式、界地址(算法:最先/最佳/最坏适应算法)最先适应:取第一个可满足区域优点:尽量使用低地址空间,高区保持大空闲区域 缺点:可能分割大空闲区最佳适应:取最小可满足区域优点:尽量使用小空闲区,保持大空闲区 缺点:可能形成碎片最坏适应:取最大可满足区域优点:原创 2022-01-09 12:51:45 · 191 阅读 · 0 评论 -
操作系统复习第五章
第五章 死锁与饥饿死锁定义:一组并发进程中的每一个进程,均无限期地等待此组进程中某个其他进程占有的,因而永远无法得到的资源,这种现象称为进程死锁。死锁的条件资源独占:一个资源在同一时间只能分给一个进程(输出设备等)不可剥夺:资源只能由其占有者在使用完后资源释放(已占不能被抢)保持申请:进程在占有部分资源后还可以申请新的资源,而且在申请新资源的时候并不释放它已经占有的资源(不满足的已占也不释放)循环等待:存在一个循环等待链(你等我,我等你)死锁的处理方法(预防、避免、检测、恢复)死锁预防:通过原创 2022-01-09 12:43:55 · 159 阅读 · 0 评论 -
操作系统复习第四章
第四章 互斥、同步与通信进程互斥的实现互斥访问: 一次只允许一个进程活动在关于同一组公共变量的临界区中;空闲让进: 临界区空闲时,多个竞争者在有限时间内确定下一个进入者;有限等待: 一个想要进入临界区的进程在等待有限个进程进入并离开临界区后获得进入临界区的机会。信号量与PV操作互斥:Semaphore mutex ; mutex.value = 1;同步:Semaphore s ; s.value = 0;CobeginPa();Pb();...Coend;`PV操作原语***信号原创 2022-01-09 12:42:27 · 87 阅读 · 0 评论 -
操作系统复习第三章
第三章 中断与处理器调度处理机调度:作业周转时间作业平均周转时间作业带权周转作业平均带权周转优缺点考虑因素:公平性、是否会饿死、平均周转时间、系统开销先到先服务算法(FCFS):按进入就绪态的次序来调度。优点:公平,不会出现饿死缺点:短进程的等待时间长,从而平均等待时间较长最短作业优先(SJF):按照CPU阵发时间递增的次序调度,易于证明其平均周转时间最短。优点:最大限度地降低了平均等待时间,若所有作业同时到达,平均等待时间最短缺点:不公平;长作业容易产生饥饿,甚至饿死最短原创 2022-01-09 12:39:59 · 1031 阅读 · 0 评论 -
操作系统复习第二章
第二章 进程、线程与作业1. 多道程序设计1. 单道程序设计缺点:处理机利用率低、设备利用率低、内存利用率低2. 多道程序设计的提出:设计目标:提高系统效率(吞吐量) 一段时间内多个程序并发交叉执行,问题复杂,引入进程2.1进程:定义:进程是具有一定独立功能的程序关于一个数据集合的一次运行。动态:执行中的程序; 并发:可与其他进程同时执行。进程:资源分配的基本单位进程状态及状态转换(动态性体现)进程状态转换图进程的创建与撤销进程的创建:建立PCB,分配内存,加载程序,入就原创 2022-01-09 12:38:25 · 98 阅读 · 0 评论 -
操作系统复习第一章
第一章 操作系统概述1.操作系统的定义操作系统是位于硬件层之上、所有其他系统软件层之下的一个系统软件,是管理系统中各种软硬件资源,方便用户使用计算机系统的程序集合。2.操作系统的特性2.1程序并发性:多个程序在宏观上同时向前推进 2.2资源共享性:操作系统和多个用户程序共用系统中的各种资源2.3异步性:在操作系统之上,宏观上同时运行的多个程序交替执行2.4虚拟性:利用某种技术把一个物理实体变为若干个逻辑实体3.操作系统的分类4.操作系统的界面形式1交互终端命令2图形用户界面3触屏用原创 2022-01-09 12:36:48 · 267 阅读 · 0 评论