
操作系统
文章平均质量分 70
无知亦乐
当因为迷茫失去人生方向的时候,那就去学习吧!
展开
-
虚拟化技术分析Linux系统的一般执行过程
用户可以启动各种进程和应用程序,这些进程在虚拟机中执行,与物理机上的其他虚拟机和进程相互隔离。通过本门课程的学习,我对linux操作系统的认知进一步加深,从内核的组成,进程的创建和切换过程,内核如何管理设备驱动程序,文件系统的组成等掌握了操作系统的工作原理。它可以提供虚拟机的迁移、快照、资源调整和故障恢复等功能,以确保虚拟机的稳定和高可用性。5.初始化内核:Linux内核启动后,它会进行一系列初始化步骤,包括初始化设备驱动程序、设置内存管理、建立系统调用接口、创建进程管理结构等。原创 2023-05-15 16:51:38 · 749 阅读 · 1 评论 -
Linux的进程调度算法简介
文章目录一、调度算法的原理和分类1.进程调度简介2.按不同需求对调度的进程分类3.调度算法分类二、使用步骤1.引入库1.引入库总结一、调度算法的原理和分类1.进程调度简介 进程调度的研究是整个操作系统理论的核心,在多进程的操作系统中,进程调度是一个全局性的、关键性的问题,它对系统的总体设计、系统的实现、功能设置以及各方面的性能都有着决定性的影响。进程运行需要各种各样的系统资源,如内存、文件、打印机和最宝贵的CPU等,所以说,调度的实质就是资源的分配。系统通过不同的调度算法(Scheduling A原创 2021-07-16 16:58:22 · 7751 阅读 · 3 评论 -
操作系统-用信号量解决过独木桥问题
题:请用信号量解决以下的“过独木桥”问题:同一方向的行人可连续过桥,当某一方向有人过桥时,另一方向的行人必须等待;当某一方向无人过桥时,另一方向的行人可以过桥。解答:信号量brigde表示独木桥互斥访问,初值为1;变量eastcount和westcount分别表示从东西方上独木桥的行人数量,初值为0,信号量eastmutex和westmutex是对变量eastcount和westcount数据读写的保护,初值为1。东方:while(true){ P(eastMutex); eastCount+原创 2021-01-15 10:48:50 · 17492 阅读 · 8 评论 -
操作系统-用信号量解决小和尚打水老和尚喝水问题
题目:某寺庙,有小和尚、老和尚若干。庙内有一水缸,由小和尚提水入缸,供老和尚饮用。水缸可容纳 30 桶水,每次入水、取水仅为1桶,不可同时进行。水取自同一井中,水井径窄,每次只能容纳一个水桶取水。设水桶个数为5个,试用信号灯和P、V操作给出老和尚和小和尚的活动。解答:n个小和尚从井里面提水进程之间互斥,用 信号量mutex1 来表示;n个小和尚将水倒在缸里、n个老和尚从缸里面取水,这些进程互斥,用信号量 mutex2 来表示;不管是谁要使用水桶都要确认空闲水桶的数量,用 信号量amount 来表示;信号原创 2021-01-15 10:45:33 · 3426 阅读 · 5 评论 -
模拟设计MS-DOS操作系统中磁盘文件的存储结构、模拟便于直接存取的索引文件结构
文章目录一、模拟设计MS-DOS操作系统中磁盘文件的存储结构二、模拟便于直接存取的索引文件结构三、具体实现四、实验结果一、模拟设计MS-DOS操作系统中磁盘文件的存储结构 链接文件可以存放在不连续的物理块中,使用链接字(又称指针)来指出文件中各个物理块之间的关联。在一般情况下,链接文件的第一个物理块号登记在文件目录中,每一块中设置一个链接字,指出链接文件的下一个物理块号,最后一块中的链接字内容为“0”,表示文件结束。如图所示: 采用上述的链接文件结构,只有读出一个物理块信息后才能从链接字中得知下原创 2021-01-15 10:40:14 · 2180 阅读 · 0 评论 -
生产者-消费者问题实现(Ubuntu环境)
文章目录一、实验要求二、实现(Ubuntu环境)三、执行结果一、实验要求在Linux操作系统下用C实现经典同步问题:生产者—消费者,具体要求如下:(1)一个大小为10的缓冲区,初始状态为空。(2)2个生产者,随机等待一段时间,往缓冲区中添加数据,若缓冲区已满,等待消费者取走数据之后再添加,重复10次。(3)2个生产者,随机等待一段时间,往缓冲区中读取数据,若缓冲区为空,等待生产者添加数据之后再读取,重复10次。(4)当前只能有一个进程对这个缓冲区进行操作 。(5)缓冲区采用循环队列表示,利用头原创 2021-01-15 09:52:48 · 2614 阅读 · 0 评论 -
在分页式管理方式下采用位示图来表示主存分配情况,实现主存空间的分配和回收
文章目录一、基本思想二、程序所用数据结构和符号说明三、具体实现四、运行结果一、基本思想 分页式存储器把主存分成大小相等的若干块,作业的信息也按块的大小分页,作业装入主存时可把作业的信息按页分散存放在主存的空闲块中,为了说明主存中哪些块已经被占用,哪些块是尚未分配的空闲块,可用一张位示图来指出。位示图可由若干存储单元来构成,其中每一位与一个物理块对应,用0/1表示对应块为空闲/已占用。 假设某系统的主存被分成大小相等的64块,则位示图可用8个字节来构成,另用一单元记录当前空闲块数。如果已有第0,1,原创 2021-01-15 10:20:41 · 6355 阅读 · 4 评论 -
在可变分区管理方式下采用最先适应算法实现主存分配和实现主存回收
文章目录一、算法基本思想二、程序所用的数据结构和符号说明三、具体实现四、实验结果一、算法基本思想 可变分区方式是按作业需要的主存空间大小来分割分区的。当要装入一个作业时,根据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作业;若无,则作业不能装入。随着作业的装入、撤离,主存空间被分成许多个分区,有的分区被作业占用,而有的分区是空闲的。为了说明哪些区是空闲的,可以用来装入新作业,必须要有一张空闲区说明表。当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大原创 2021-01-15 10:12:04 · 7489 阅读 · 1 评论 -
LRU算法实现
文章目录前言1. LRU设计要求2. 源程序使用的数据结构和符号说明3.具体实现4.示例前言最近最久未使用(LRU)置换算法原理就是当需要淘汰某页面时,选择当前一段时间内最久未使用过的页先淘汰,即淘汰距当前最远的上次使用的页。1. LRU设计要求假定分配给该进程的页块数为3,页面访问序列长度为20,首先随机产生页面序列,当发生请求调页时,若内存已满,则需要利用LRU算法,将当前一段时间内最久未使用过的页替换出去。2. 源程序使用的数据结构和符号说明通过一个结构体LRU包含整个LRU的具体实现,设原创 2021-01-15 10:01:13 · 1519 阅读 · 1 评论 -
银行家算法
文章目录一、算法介绍二、算法原理三、伪码描述四、 相关说明五、具体实现六、实验示例一、算法介绍银行家算法(Banker’s Algorithm)是一个避免死锁(Deadlock)的著名算法,它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行。为了了解系统的资源分配情况,假定系统的任何一种资源在任意时刻只能被一个进程使用,任何进程已经占用的资源只能由进程自己释放,而不能由其他进程抢占,当进程申请的资源不能满足时,必须等待。因此只要资源分配算法能保证进程的资源请求,且不出现循环等待,则系统不会出现死原创 2021-01-15 09:44:32 · 12935 阅读 · 0 评论 -
读者-写者问题
读者优先:int readcount = 0;semaphore mutex = 1, wrt = 1;Reader :while(true){ wait(mutex); readcount++; if(readcount == 1) wait(wrt); signal(mutex); ... reading is performed ... wait(mutex); readcount--; if(readcount == 0) signal(wrt);原创 2020-11-21 16:07:07 · 2794 阅读 · 0 评论