- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
会计学;文本编辑相关vied
系统命令;编辑-编译-调试-连接-运行
编辑:常用vi或其他IDE集成开发环境
编译:gcc–oabcabc.c
gcc–g–oabcabc.c//abc中加调试信息
调试:gdbabc//只有在编译时加了-g选项才可能用gdb调试
breakNUM在指定的行上设置断点。
clear删除设置在特定源文件、特定行上的断点。 ClearFILENAME:NUM。
printEXPR显示表达式EXPR的值
list显示源代码段
next在不单步执行进入其他函数的情况下,向前执行一行源代码
help帮助
q退出
运行./abc
四、常用系统调用;设备管理:如ioctrl()
文件管理:open()close()read()write()
进程控制:fork()wait()getpid()exec()
进程通信:signal()kill()
存储管理:memset()五、实习
用文件系统相关系统调用,打开
/proc/sys/fs/file-max文件,获得本操作系统最大可打开文件句柄数。;实验二Linux系统调用分析;四、要求
分析源代码,分组讨论分工合作。要求至少有以下内容:
进程id
structtask_struct分析structtask_struct
{;inthas_cpu;
intprocessor;;pid_tpid;
structtask_struct*p_opptr,*p_pptr,
*p_cptr,*p_ysptr,*p_osptr;
structtask_struct*pidhash_next;structtask_struct**pidhash_pprev;
…
};4;do_fork流程框图do_execve流程框图;Fork()实例
#includestdio.hMain(){
Intgetpid(),getppid(),pid;puts(“Beforefork.”);
Printf(“Theparentpidofprocess%dis%d\n”,getpid(),getppid());If((pid=fork())==-1)exit(1);
Else
If(pid==0)//子进程
{
puts(“childprocessafterfork”);
Printf(“Theparentpidofprocess%dis%d\n”,getpid(),getppid());exit(1);
}
Else//父进程
{
wait();
puts(“parentprocessafterfork”);
Printf(“Theparentpidofprocess%dis%d\n”,getpid(),getppid());Printf(“Thechildpidofprocess%dis%d\n”,getpid(),pid);
}
Exit(0);
};实验三进程间通信; Msgget():建立消息队列;返回消息队列id
Intmsgget(key_tkey,intflags)
Msgctl():取得、修改消息队列属性intmsgctl(intmsgid,intcmd,structmsqid_ds*mbuf)
Msgsnd()与msgrcv()intmsgsnd(msgid,void*msgp,msgtype,msgflag);;二、管道通信
用pipe()系统调用编写程序实现:
父进程通过管道向子进程发送一个字符串,子进程将其显示出来。;三、模拟生产者-消费者进程通信过程1、PV操作与生产者消费者问题回顾
(1)信号灯,是一个确定的二元组(s,q),s是信号量,是一个非负初值的整型变量,q为初始状态为空的队列(即等待队列)。
S0,代表可供并发进程使用的资源个数(临界资源则只有1个)S=0,代表所有进程都分配到了资源,且空闲资源数为0。S0,代表有|s|个进程等待临界资源以进入临界区。;P、V操作
改变信号量的值,是通过PV原语来完成的;记作:P(s)和V(s)。
P(s):使信号量s的值减1;V(s):使信号量s的值加1;
用信号灯和PV操作实现进程的同步;私有信号量:一个进程的私有信号量是从制约进程发送来的该进程执行所必须的消息;该信号量只与制约、被制约进程有关。
利用私有信号量,可以通过使用PV操作实现进程同步。
(4)生产者——消费者问题
生产者——消费者问题主要是同步问题,但是其中涉及到互斥问题。;生产者——把系统中释放某一类资源的进程统称为
文档评论(0)