开源操作系统课程设计
实验报告
GCC —— Matrix |
SHELL Footscript |
Ncurse —— menu |
Kernel FloppyLinux |
Driver Node & test |
Process fork & pipe |
Pthread PV operate |
Pthread Philosophy |
System Call |
SHELL simulation |
Memory simulation |
Aggregate |
|
|
|
|
|
|
|
|
|
|
|
|
评语
|
- 界面以及结构说明(程序界面菜单以及子菜单的截图和功能说明)
1、GCC Matrix |
编译执行打印螺旋矩阵 |
2、SHELL Footscript |
编写脚本,实现添加和删除用户功能 |
3、Kernel FloppyLinux |
制作FloppyLinux |
4、Driver Node & test |
执行驱动,打印螺旋矩阵 |
5、Process fork & pipe |
实现进程的fork()和进程的pipe() |
6、Pthread PV operate |
用进程实现警察和小偷 |
7、Pthread Philosophy |
用进程实现哲学家问题 |
8、System Call |
系统调用 |
9、SHELL simulation |
模拟实现shell的命令 |
10、Memory simulation |
用首次适应算法实现内存管理 |
- 各个模块说明
1、GCC —— Matrix
(1)实验原理
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。他是我们使用Linux系统不能缺少的工具。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,学会它后,您将在Linux的世界里畅行无阻。vim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序设计;因为程序简单,编辑速度相当快速。vim可以当作vi的升级版本,他可以用多种颜色的方式来显示一些特殊的信息。vim会依据文件扩展名或者是文件内的开头信息, 判断该文件的内容而自动的执行该程序的语法判断式,再以颜色来显示程序代码与一般信息。vim里面加入了很多额外的功能,例如支持正则表达式的搜索、多文件编辑、块复制等等。 这对于我们在Linux上进行一些配置文件的修改工作时是很棒的功能。
本次实验在小红帽里写一个简单的C文件,编译运行,打印螺旋矩阵。通过本次实验,熟悉Linux中的命令,学会在终端中通过vi编译器中,编写简单的程序。
(2)实验关键代码
// 输出螺旋矩阵
void Matrix()
{
const int size = 10; // 矩阵大小
int matrix[size][size] = {0};
int row = 0;
int col = 0;
int start = 1; // 起始值
int temp = size;
for (int count = 0; count < size / 2; count++) // size阶的矩阵可以画size/2个圈
{
for (; col < temp - 1; col++) // a排赋值
matrix[row][col] = start++;
for (; row < temp - 1; row++) // b排赋值
matrix[row][col] = start++;
for (col = temp - 1; col > count; col--) // c排赋值
matrix[row][col] = start++;
for (row = temp - 1; row > count; row--) // d排赋值
matrix[row][col] = start++;
// 进入下一圈
temp--;
row++;
start -= 1; // 这里-1是因为在换圈的时候会多加1
}
if (0 != size % 2) // 如果size为奇数则最后会有一个数遍历不到,这里补上
matrix[row][col+1] = start + 1;
// 输出数组
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
printf(" %d",matrix[i][j]);
}
printf("\n");
}
}