- 博客(265)
- 资源 (1)
- 收藏
- 关注
原创 磁盘调度中的SCAN算法:原理、实现与实例
SCAN算法,又称为电梯算法,是一种用于磁盘调度的算法。它模拟了电梯的工作原理——磁头从磁盘的一端扫描到另一端,服务该区间内的请求。当达到磁盘的一个极限时,磁头会反向扫描。这个过程会一直重复,直到所有请求都得到处理。SCAN算法的优点在于相对较为均匀地处理磁盘请求,避免了“饥饿现象”,但是它在极端情况下可能会导致较长的寻道时间。SCAN算法通过模拟电梯的工作原理,有效减少了磁头的回头移动,优化了磁盘调度性能。SCAN算法适用于请求均匀分布的场景,但在请求高度不均匀时,可能会出现较长的寻道时间。
2024-12-05 20:36:51
1350
原创 Clock 页面置换算法实验指导书
Clock 算法的核心思想是利用一个环形队列来模拟页面替换过程。每个页面有一个访问位,用来表示该页面是否在最近被访问过。
2024-11-21 20:32:05
566
原创 进程同步:哲学家进餐问题与生产者消费者问题
哲学家进餐问题和生产者消费者问题是进程同步中的两个经典例子,它们帮助我们理解如何使用信号量和互斥量来管理共享资源,避免死锁和饥饿等问题。在实际系统中,这些方法对于保证系统的稳定性和有效性至关重要。希望通过这些示例,大家可以更好地理解进程同步的概念,并将这些技术应用到实际的编程场景中。同步机制不仅用于解决这些经典问题,也在各种并发编程中起着重要作用。编写并发程序时,合理使用信号量、互斥量等同步工具,可以帮助我们避免许多潜在的错误和不一致。
2024-11-07 17:27:45
1252
原创 实验:简单的C语言编程练习
在本篇博客中,我们将通过三个小实验来学习如何用C语言编写代码来处理不同的问题。这些实验分别涉及数字运算、字符判断和寻找中间值的逻辑。
2024-10-24 14:59:16
414
原创 C语言入门-选择结构
条件运算符和逻辑运算符的混淆:要注意条件运算符(如==等)与逻辑运算符(如&&||)的区别和使用场景。缺少break语句:在switch语句中,忘记写break会导致程序继续执行后续的case,即“贯穿效应”。if语句中的赋值错误:在if条件中,使用而不是==可能会导致逻辑错误。int a = 5;if (a = 10) { // 错误:这里应该使用 ==这段代码会将a赋值为10,然后判断条件是否为真,容易导致意想不到的行为。逻辑运算的短路效应:当使用&&或||时,要注意短路效应。例如,在a!
2024-10-24 10:49:09
1079
原创 C语言入门:顺序结构
顺序结构是指程序的执行按照从上到下的顺序依次执行每一条语句,直到程序结束。在顺序结构中,所有的代码都会被按照它们的编写顺序执行,没有任何条件判断或循环控制。这种结构简单明了,适用于一些直线型的任务,例如计算、输入输出等。顺序结构是构建其他复杂控制结构的基础,理解顺序结构是学习编程的重要起点。
2024-10-17 11:13:20
665
原创 死锁 - 银行家算法
银行家算法由艾兹赫尔·戴克斯特拉(Edsger Dijkstra)提出,得名于银行如何向客户分配贷款的类比。它通过确保在分配资源后系统仍然处于安全状态来避免死锁。在这种算法中,系统在做出每一个资源分配决定之前,都会预先评估资源分配的安全性,以确保系统不会进入死锁状态。最大需求声明:每个进程在开始时声明其对每种资源的最大需求量。动态资源分配:在分配资源时,系统会检查是否有足够的资源满足进程需求,并确保资源分配不会导致死锁。安全状态检查。
2024-10-17 11:00:13
1629
原创 调度算法 - 优先级调度算法
优先级调度算法是一种调度策略,基于进程的优先级来决定 CPU 的分配顺序。每个进程都有一个优先级数值,通常是一个整数,优先级数值越低或越高,表示优先级越高(具体取决于实现)。在这种算法中,具有较高优先级的进程会优先获得 CPU 资源,直到它完成执行或者被阻塞。抢占式优先级调度:当一个更高优先级的进程到达时,它可以中断正在执行的低优先级进程。非抢占式优先级调度:当前正在运行的进程不会因为更高优先级的进程到达而被中断,直到其完成执行或被阻塞。
2024-10-17 10:55:22
1534
原创 调度算法 - 时间片轮转调度算法
时间片轮转调度算法是一种基于时间片的抢占式调度算法。它将 CPU 的时间分割为一个个固定长度的时间片(Time Slice),然后将这些时间片按顺序分配给每个进程。每个进程在它的时间片内执行任务,如果在时间片结束前完成任务,那么它会释放 CPU 供其他进程使用;如果未完成任务,则进程会被置于就绪队列的末尾,等待下一轮时间片。时间片轮转调度的基本特点包括:每个进程都有一个固定的时间片。如果进程在时间片内没有完成,则会被挂起并移到队列的尾部。该算法是抢占式的,可以提高系统响应时间。
2024-10-17 10:52:26
2786
1
原创 调度算法-高响应比优先调度算法
高响应比优先(HRN)是一种改进型的调度算法,它综合考虑了进程的等待时间和执行时间,通过计算每个进程的响应比来决定下一个要执行的进程。HRN算法的主要目标是避免长进程因短进程不断插入而长期等待的情况,从而兼顾系统的公平性和效率。响应比等待时间:进程已经在就绪队列中等待的时间。执行时间:进程所需的CPU时间。通过该公式可以看出,随着等待时间的增加,响应比也会相应提高,这意味着等待时间较长的进程会逐渐得到更高的优先级,解决了短作业优先调度算法中长任务容易饥饿的问题。
2024-10-16 11:11:16
2788
原创 短作业优先调度算法详解:抢占式与非抢占式
短作业优先(SJF)是一种调度策略,它选择执行时间最短的进程优先进行调度。这种算法的核心理念是:短的任务先执行,从而减少整体的平均等待时间。非抢占式短作业优先抢占式短作业优先(也称为最短剩余时间优先。
2024-10-16 11:07:15
4823
原创 初识C语言:数据类型、运算符与表达式
C语言是一种广泛使用的编程语言,被称为"现代编程语言之母",因其高效、灵活的特点而备受青睐。作为学习编程的基石,C语言涵盖了很多核心的编程概念,其中包括数据类型、运算符和表达式。
2024-10-13 13:30:01
1367
原创 C语言入门:如何让标识符更加美观
在C语言中,标识符是用于命名变量、函数、数组、结构体等编程元素的名称。只能包含字母、数字和下划线(不能以数字开头。大小写字母被认为是不同的标识符(C语言区分大小写)。不能使用C语言的保留关键字(如intifreturn等)。// 有效的标识符// 无效的标识符,不能以数字开头虽然C语言对标识符的命名规则较为宽松,但要让代码更加美观与易读,命名时应遵循一些良好的命名规范。
2024-10-11 13:17:21
1139
原创 入门C语言:从原码、反码、补码到位运算
在计算机中,数据是以二进制的形式存储和处理的。我们通常使用二进制表示整数,但对正数和负数的表示方式却有多种。在C语言中,整数是通过补码的形式表示的,而原码和反码则是理解补码的基础。
2024-10-11 13:09:41
769
原创 C语言-输入输出
编写一个 C 程序,要求用户输入两个整数,并输出它们的和、差、积。如果运行程序后控制台窗口一闪而过,可以在代码中添加。编写一个 C 程序,要求输出两行字符,内容自定义。在左侧的项目管理器中,展开项目,双击。在左侧的项目管理器中,展开项目,双击。函数接收用户输入,使用。
2024-10-10 15:42:08
1202
原创 调度算法-先来先服务
*先来先服务(First-Come, First-Served,FCFS)**调度算法是操作系统中最简单、最基本的进程调度算法之一。它按照进程到达就绪队列的先后顺序来调度进程,即先到达的进程先被分配CPU资源进行执行。int pid;// 进程ID// 到达时间// 服务时间// 开始执行时间// 完成时间// 周转时间// 带权周转时间} Process;使用结构体Process来表示一个进程的各种属性。内存分配:动态分配存储进程的数组。数据输入。
2024-10-10 15:28:42
2129
原创 进程创建、进程通信
Linux系统中关于进程的一些知识点。包含头文件:主函数定义:变量声明:创建子进程:检查返回值:子进程代码块:父进程代码块:结束程序:通过这些步骤,程序展示了父子进程的创建与管理,以及它们之间的基本交互。完整代码如下:IPC机制采用管道通信;下述代码实现了一个简单的“石头、剪刀、布”游戏,通过两个子进程进行比赛,并使用管道进行进程间通信。下面是对代码的详细解释:头文件包含:引入了基本的输入输出、进程控制、管道操作等需要的库。宏定义:数据结构与判定函数:创建管道和子进程:子进程(选手甲):创建第二个管道
2024-09-26 21:04:44
1056
原创 Java的局部变量、类变量和实例变量
局部变量:作用域在方法内部,只能在方法内部使用。类变量:作用域在整个类中,可以在类内部使用,在数据类型前加static实例变量:实例变量定义时与类变量的区别在于类变量前加static,实例变量从属于类的对象,只能通过类实例化的对象使用,不能够直接在类中调用。实例变量的初始化问题:实例变量在使用时不手动初始化,会使用默认值。其中非基本数据类型默认值为null代码中有较为详细地对比。public class Demo_01 { //类变量:作用在整个类中,可以直接调用 st
2021-10-09 09:09:40
652
原创 推箱子
写的一个推箱子小游戏本来打算用c写但后还偷懒用了一点stl(只用了队列来处理 广度优先搜索 来对判断鼠标指令进行处理)用了easyx绘图工具代码的话然后的话总共弄了8关图片和音频可以自己弄 我是用的小黄人的那一套大概逻辑就如代码这样 呃呃就这样吧写的话可以参考这个逻辑自己写一下 不是太复杂总之 说有的情况都可以转化为 这几类1 先把b1移动到c1处,再把a1移...
2019-01-24 17:01:57
1110
原创 linux学习一
虽然这个学期包括假期都过的<<糟心糟心糟心糟心.....,但是该学习还是要学习的学习了linux的一些简单命令// 文件及文件夹cd /home 进入 '/ home' 目录'cd .. 返回上一级目录cd ../.. 返回上两级目录cd 进入个人的主目录cd - 返回上次所在的目录pwd 显示工作路径ls 查看目录中的文件mkdir + 文件...
2019-01-24 16:24:09
391
原创 停车管理系统
很久没有写新东西了,然后就把最近学的一些东西整理一下做了一个个人实践项目 停车管理系统 运用的栈和队列的结构(C)以前写代码时总会图方便直接使用一些封装好的东西,后来仔细想想自己并不能独立的完整地写出这些东西,从新写一下,让自己学到了不少东西主要功能:停车,取车,显示信息主要是利用栈和队列去实现一些简单功能基于linux系统的小程序1main.c//主函数/***...
2019-01-21 18:05:17
3080
2
原创 小游戏-贪吃蛇
在终端运行的一个小游戏 wasd 上下左右 #include<stdio.h>#include<stdlib.h>#include<conio.h>#include<windows.h>#define High 20#define Width 30int moveDirection;int food_x, food_y;i...
2018-12-04 22:19:32
396
原创 小游戏——飞机
在终端运行的一个小游戏, 随机生成10个敌机,子弹随分数增加变强,敌机随分数增加变快。#include<stdio.h>#include<windows.h>#include<conio.h>#include<stdlib.h>#define _CRT_SECURE_NO_WARNINGS#define High 25#d...
2018-12-04 10:12:19
560
原创 弹跳小球
#include<stdio.h>#include<stdlib.h>#include<windows.h>void HideCursor(){ CONSOLE_CURSOR_INFO cursor_info = {1, 0}; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), ...
2018-11-21 16:17:28
600
原创 成绩管理
#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#define isize 100void menu();void menu1();typedef struct{ int math; int english; int...
2018-11-14 19:18:59
404
1
原创 E - Counting Cliques HDU - 5952
A clique is a complete graph, in which there is an edge between every pair of the vertices. Given a graph with N vertices and M edges, your task is to count the number of cliques with a specific size ...
2018-09-12 17:25:59
267
原创 C - Recursive sequence HDU - 5950
Farmer John likes to play mathematics games with his N cows. Recently, they are attracted by recursive sequences. In each turn, the cows would stand in a line, while John writes two positive numbers a...
2018-09-12 09:38:56
274
原创 The Unique MST POJ - 1679
Given a connected undirected graph, tell if its minimum spanning tree is unique.Definition 1 (Spanning Tree): Consider a connected, undirected graph G = (V, E). A spanning tree of G is a subgraph of ...
2018-09-11 09:28:07
316
原创 Arctic Network POJ - 2349
The Department of National Defence (DND) wishes to connect several northern outposts by a wireless network. Two different communication technologies are to be used in establishing the network: every o...
2018-09-10 20:17:18
322
原创 J - Punching Power Gym - 101670J
给n个点的坐标(二维) 求任意两点之间的距离大于 1.3 的点的最大个数最大独立集#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#include<...
2018-09-07 08:58:02
302
原创 A - Will he Die? Gym - 101778A
Unfortunately, Conan is in a real danger! Conan discovered who is the killer after searching for the evidence in a dangerous cave. Now, he is standing in front of a bomb that about to explode. The bom...
2018-09-05 16:52:08
284
原创 B - Ran and the Lock Code Gym - 101778B
Two days ago, a woman called Fumiyo Edogawa knocked the door of Kogoro Mouri home and claimed that she is Conan's mom. Fumiyo introduced herself as Conan's mother and used fake documents to prove this...
2018-09-05 16:44:15
328
原创 Preparing for Exams Gym - 101778G
Ran Mouri and Sonoko Suzuki are preparing for the final exams. They decided to study mathematics as it is the hardest subject for them. While they are solving mathematical problems, they faced trouble...
2018-09-05 08:17:48
366
原创 E - Railroad UVALive - 4888
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2889状态转移方程: dp[i][j] = dp[i - 1][j] || dp[i][j] = dp[i][j - 1];#include<iostr...
2018-08-28 20:24:13
259
原创 C - Chocolate Box UVA - 10648
Recently one of my friend Tarik became a member of the food committee of an ACM regional competition. He has been given m distinguishable boxes, he has to put n types of chocolates in the b...
2018-08-28 19:55:56
334
原创 棋盘游戏 HDU - 1281
小希和Gardon在玩一个游戏:对一个N*M的棋盘,在格子里放尽量多的一些国际象棋里面的“车”,并且使得他们不能互相攻击,这当然很简单,但是Gardon限制了只有某些格子才可以放,小希还是很轻松的解决了这个问题(见下图)注意不能放车的地方不影响车的互相攻击。 所以现在Gardon想让小希来解决一个更难的问题,在保证尽量多的“车”的前提下,棋盘里有些格子是可以避开的,也就是说,不在这些格子上放车,...
2018-08-25 09:08:38
384
原创 Courses HDU - 1083
Consider a group of N students and P courses. Each student visits zero, one or more than one courses. Your task is to determine whether it is possible to form a committee of exactly P students that sa...
2018-08-25 08:29:05
260
原创 L - 4个数和为0 51Nod - 1267
给出N个整数,你来判断一下是否能够选出4个数,他们的和为0,可以则输出"Yes",否则输出"No"。Input第1行,1个数N,N为数组的长度(4 <= N <= 1000) 第2 - N + 1行:Aii(-10^9 <= Aii <= 10^9)Output如果可以选出4个数,使得他们的和为0,则输出"Yes",否则输出"No"。Sample In
2018-08-24 20:30:35
184
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人