- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中国石油大学(华东)
操作系统课程设计
设计报告
螺旋
Matrix
字符串对比
Ncurse
界面
脚本
Floppy
Linux
驱动
Driver
进程
汇总
线程
警察小偷
线程
哲学家
系统
调用
Shell
编写
模拟
内存
评语
成绩
中国石油大学(华东)计算机科学与技术学院
要求(本页打印):
双面打印,内容篇幅不要过长(每个实验不要超过3页),禁止贴全部程序,只贴关键代码即可。
禁止抄袭
实验列表如下:
实验1:螺旋矩阵实验 —— Linux下的C编程
实验2:字符串对比实验 —— Linux下的C编程
实验3:界面编写实验 —— 基于NCurses的文本界面
实验4:脚本编写实验 —— 批量建立和删除用户
实验5:内核定制实验 —— FloppyLinux的实现
实验6:驱动程序实验 —— 实现驱动程序插入内核并调用
实验7:进程汇总实验 —— 创建、信号量机制和管道
实验8:线程操作实验 —— 警察小偷的PV操作
实验9:线程操作实验 —— 哲学家进餐的资源竞争
实验10:系统调用实验 —— 添加系统调用
实验11:终端编写实验 —— 模拟终端shell
实验12:内存模式实验 —— 实现malloc和free的内存模拟过程
每个实验要求格式如下(内容使用5号字):
实验:实验题目
实验情景描述
实验原理
关键代码(包括截图)
实验结果及说明总结
实验1:螺旋矩阵实验 —— Linux下的C编程
一、实验情景描述
完成一个程序,要求输入两个数字即可形成相应的字母螺旋矩阵。
例如输入5,6,则程序会生成如下5行6列的矩阵,Z之后循环至A:
A B C D E F
R S T U V G
Q B C D W H
P A Z Y X I
O N M L K J
二、实验原理
完成程序ju.c,并用Makefile完成编译。
三、关键代码
Makefile如下
CC=gcc
OBJS=ju.o
EXEC=ju
all:$(EXEC)
$(EXEC):$(OBJS)
$(CC) -o $@ $(OBJS)
clean:
rm -f $(OBJS) $(EXEC)
ju.c部分代码如下
int total = 1;
char digit = 65;
x = 0, y = 0;
a[x][y] = 65;
while(total m*n){
while(y+1n!a[x][y+1]){
if(digit=90){
digit = 64;
}
a[x][++y] = ++digit;
++total;
}
while(x+1m!a[x+1][y]){
if(digit=90){
digit = 64;
}
a[++x][y] = ++digit;
++total;
}
while(y-1=0!a[x][y-1]){
if(digit=90){
digit = 64;
}
a[x][--y] = ++digit;
++total;
}
while(x-1=0!a[x-1][y]){
if(digit=90)
{ digit = 64;}
a[--x][y] = ++digit;
++total; }}
四、实验结果
实验2:字符串对比实验 —— Linux下的C编程
一、 实验情景描述
完成一个程序,输入两个字符串,判断其中一个字符串是否是另一个的子串,如果是则输出true,否则输出false。
二、 实验原理
完成程序ju.c,并用Makefile完成编译。
CC=gcc
OBJS=mystring.o
EXEC=mystring
all:$(EXEC)
$(EXEC):$(OBJS)
$(CC) -o $@ $(OBJS)
clean:
rm -f $(OBJS) $(EXEC)
三、 关键代码(包括截图)
Ju.c的部分代码如下:
int main()
{
char s1[N],s2[N];
gets(s1);
gets(s2);
if (
文档评论(0)