自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 项目实训07

第六部分:文件系统 文件是操作系统中最重要的概念。在Linux中,万物皆文件的概念可谓深入人心。事实上,任何数据集合均可看做文件。而管理,存储文件则需要一个精心运作的文件系统。本实验中,我们就来模拟实现一个简易的文件系统。 (1)在工作目录下建立FileSystem.h文件: 在这里,我们要定义一些最重要的文件数据结构 typedef struct{ unsigned short blockSize; unsigned int blockNum; unsigned int ino

2021-05-31 17:41:40 69

原创 项目实训06

多线程单词统计 本实验中,我们使用多线程实现统计文本单词的功能。在统计时,凡是一个非字母或数字的字符跟在字母或数字的后面,那么这个字母或数字就是单词的结尾。允许线程使用互斥锁来修改临界资源,确保线程间的同步与协作。如果两个线程需要安全地共享一个公共计数器,需要把公共计数器加锁。 在工作目录下建立words.c文件: #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd

2021-05-08 18:55:03 177

原创 项目实训05

1.字符设备驱动 只能一个字节一个字节的读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后顺序进行。字符设备是面向流的设备,常见的字符设备如鼠标、键盘、串口、控制台、LED等。在本实验中,我们实现一个简单的字符设备驱动实验,并在设备的打开操作中打印主次设备号。 在工作目录下建立device_driver.c文件: #include<linux/kernel.h> #include<linux/module.h> #include<linux/fs.h> #

2021-05-08 18:51:05 72

原创 项目实训04

虚拟内存页面置换 内存是计算机最为珍贵的资源,其可被CPU直接访问且速度较快,但正因为如此,严重限制了其存储容量。而进程实际占用的存储空间一般都远大于内存空间,因此我们必须时时刻刻将内存中暂不需要的页面置换出内存,并将需要被执行的程序片段调入内存以确保程序的正常执行,这也就是虚拟内存的基本原理。而好的页面置换算法也直接决定了计算机的性能。在这一模块当中,我们来实现几种最经典的页面置换算法。 (1)时钟算法 时钟算法可以理解为LRU算法的一种近似,其基本思想是:需要用到页表项当中的访问位,当一个页面被装入内存

2021-04-22 21:45:08 86

原创 项目实训03

第二部分:内存管理 1.动态分区分配 进程在运行的时候需要为其分配内存空间,但考虑到节约内存等因素的影响,我们需要适当的算法来对进程进行内存分配。本实验主要实现首次适应,临近适应,最佳适应与最差适应这四种算法。 首先,我们定义内存空闲块数,进程数,进程大小,进程块号等基本变量: #define MAXNUMBER 100 static int PartitionNum; static int ProcessNum; static int FreePartition[MAXNUMBER]; stati

2021-04-20 15:35:49 60

原创 项目实训02

命名管道通信 在这一部分中,我们使用命名管道(FIFO)来进行进程通信,并且以此关联客户和服务器,我们用一个服务器来接受请求并处理,最后把结果返回给客户,即发送请求的一方。 为了使问题简单化,我们假设被处理的数据可以被拆分成一个个数据块,每个的长度都取决于PIPE_BUF字节。最后,我们通过在传递给服务器的原先数据中加上客户的进程标识符pid双方就可以使用他来为返回数据的一个管道生成一个唯一的管道标识符。 首先,我们建立一个头文件client.h,以此来定义客户和服务器程序都会用到的数据,这也包含了一些系.

2021-04-20 15:30:54 92

原创 项目实训01

创建进程 在Linux系统中,我们一般使用系统调用fork()函数来创建进程,为此,我们在工作目录下创建一个测试文件processTest.c: #include <stdio.h> #include <unistd.h> #include <stdlib.h> int main() { pid_t pid; int i = 100; pid = fork(); if(pid == -1) { printf(“Creat fork error!!!\n”); exi.

2021-04-18 15:59:27 105

原创 2021-03-04

项目实训进展报告

2021-03-04 18:45:25 71 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除