操作系统实验指导书(3)

2019-03-23 11:25

display exp 程序一旦停止就显示表达式的值 (6) 显示栈的信息

backtrace/backtrace full frame traceNum (7) 显示程序的信息

list/list num/list func info breakpoints/info break info func/into var /info files info local /info prog/info args

disassemble func/info frame/ examine(x) addr (8) 退出quit 帮助help 执行命令 shell command str 3 make (1) Make命本:

Make [flags] [macro definitions] [targets]

[flags]如果没有\参数,则系统将默认当前目录下名为makefile或者名为Makefile的文件为描述文件。在Linux中, GNU make 工具在当前工作目录中按照GNUmakefile、makefile、Makefile的顺序搜索 makefile文件。

[macro definitions]makefile文件中的变量定义

[targets]make的目标,默认是makefile文件中的第一个目标 (2) makefile文件:规则的集合

a:b command

a为目标。可以是.o,也可以是ELF,还可以是一个伪目标。 b为依赖文件。就是,要生成那个a所需要的文件或是目标。 command也就是make需要执行的,从b生成a的命令 (3)其他 变量:

定义 CFLAGS=-c 引用 $(CFLAGS)

特殊变量$@目标文件,$^所有的依赖文件,$<第一个依赖文件 命令:

不显示命令内容 @ 命令出错不处理 - 多条相关命令 ; 伪目标与自动推导: add.o : addsub.h .PHONY : clean clean :

rm edit $(objects) 文件搜索:

特殊变量 VPATH=./include:../include 特殊指令 vpath %.h ./include:../include 4 实验任务

(1)编写程序:main函数所在的文件名字为test3.c,程序功能为从键盘输入两个数求其和(调用add.c中的函数)和差(调用sub.c中的函数)。

(2)编写一个makefile文件,并用make编译刚才的程序 (3)设置断点,观察点,调试程序

实验四 linux多进程设计

实验目的

1.了解进程与程序的区别,加深对进程概念的理解;

2.了解fork( )系统调用的返回值,掌握用fork()创建进程的方法; 实验内容

1,用vi输入下面的程序,编译、调试、输出结果

#include #include int main() {

pid_t child_pid; /*fork函数

*作用:系统调用,产生一个子进程,调用一次返回两次 *返回值:pid_t类型,在头文件中定义,通常为整形 * 0 子进程返回

* ID 父进程返回的子进程ID */

child_pid=fork(); if(child_pid==0) {

int i=0;

for(;i<5;i++) {

printf(\

}

sleep(1);//wait one second } } else {

printf(\}

int j=0;

for(;i<5;i++) {

printf(\ sleep(1); }

return 0;

2,用man察看fork、sleep的用法 3,试验任务

编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。

实验五 Linux进程间的同步

实验目的

1.掌握进程并发执行的原理,理解进程并发执行的特点,区分进程并发执行与串行执行;

2.熟悉wait、exit等系统调用。 3.熟悉信号同步的方法。 实验内容

1.用man察看wait、exit的用法

2.修改实验四的程序,在父、子进程中分别使用wait、exit等系统调用“实现”其同步推进,多次反复运行改进后的程序,观察并记录运行结果。

实验六 Linux进程间的通信

实验目的

学习如何利用管道机制、消息缓冲队列、共享存储区机制进行进程间的通信,并加深对上述通信机制的理解。 实验内容

1.了解系统调用pipe()、msgget()、msgsnd()、msgrcv()、msgctl()、shmget()、shmat()、shmdt()、shmctl()的功能和实现过程。semget() semop() semctl()

2.编写一C语言程序,使其用管道来实现父子进程间通信。子进程向父进程发送字符串“is sending a message to parent!”;父进程则从管道中读出子进程发来的消息,并将其显示到屏幕上,然后终止。

3.运行该程序,观察、记录并简单分析其运行结果。

实验七 Linux文件操作

实验目的

复习标准C语言的文件操作函数,熟悉linux有关文件操作的系统调用,并理解他们之间的关系。


操作系统实验指导书(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:matlab制作案例

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: