- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统课程设计 华中师范大学计算机科学系 实验一 Linux初步 一、Linux用户界面 帐户、口令 二、Linux常用命令 文件系统相关 ls cd cp mv more rm rmdir mkdir find mount 进程管理相关 ps kill 网络通信相关 telnet ping talk send 文本编辑相关 vi ed 系统命令 reboot shutdown chmod chgrp chown useradd groupadd 三、Linux环境编程 1、基本流程和命令 编辑-编译-调试-连接-运行 编辑:常用vi或其他IDE集成开发环境 编译:gcc –o abc abc.c gcc –g –o abc abc.c //abc中加调试信息 调试:gdb abc //只有在编译时加了-g选项才可能用gdb调试 break NUM 在指定的行上设置断点。 clear 删除设置在特定源文件、特定行上的断点。 Clear FILENAME:NUM。 print EXPR 显示表达式 EXPR 的值 list 显示源代码段 next 在不单步执行进入其他函数的情况下,向前执行一行源代码 help 帮助 q 退出 运行 ./abc 四、常用系统调用 (1)设备管理:如ioctrl() (2)文件管理:open() close() read() write() (3)进程控制: fork() wait() getpid() exec() (4)进程通信:signal() kill() (5)存储管理:memset() 五、实习 用文件系统相关系统调用,打开 /proc/sys/fs/file-max文件,获得本操作系统最大可打开文件句柄数。 实验二 Linux系统调用分析 通过对Linux的fork exec等代码的分析了解一个操作系统进程的创建执行等过程锻炼学生分析大型软件代码的能力. 一、/include/linux/shed.h 包含了进程相关的数据结构task_struct 二、kernel/fork.c 包含了get_pid和do_fork 三、fs/exec.c 包含了do_execve 四、要求 分析源代码,分组讨论分工合作。要求至少有以下内容: 进程id struct task_struct分析 struct task_struct { volatile long state; /* -1 unrunnable, 0 runnable, 0 stopped */ unsigned long flags; … int has_cpu; int processor; int last_processor; int lock_depth; struct task_struct *next_task, *prev_task; struct task_struct *next_run, *prev_run; pid_t pid; struct task_struct *p_opptr, *p_pptr, *p_cptr, *p_ysptr, *p_osptr; struct task_struct *pidhash_next; struct task_struct **pidhash_pprev; … } Pidhash分析 linux进程的6种状态 : #define TASK_RUNNING 0 #define TASK_INTERRUPTIBLE 1 #define TASK_UNINTERRUPTIBLE 2 #define TASK_ZOMBIE 4 #define TASK_STOPPED 8 #define TASK_SWAPPING 16 do_fork流程框图 do_execve流程框图 Fork()实例 #includestdio.h Main(){ Int getpid(),getppid(),pid; puts(“Before fork .”); Printf(“The parent pid of process %d is %d\n”,getpid(),getppid()); If((pid=fork())==-1) exit(1); Else If(pid==0) //子进程 { puts(“child process after fork”); Printf(“The parent pid of process %d is %
您可能关注的文档
最近下载
- 2025年中国半乳甘露聚糖项目创业计划书.docx
- 公共政策学(中南财经政法大学)中国大学MOOC(慕课)章节测验试题(答案).pdf
- 牙体修复治疗术.pptx VIP
- 广州市南沙区2023-2024学年八年级上学期期末物理冲刺卷(含答案).doc VIP
- 七年级道德与法治上册《爱护身体》.pptx VIP
- 【人教版】小学一年级体育上册全册教案.pdf VIP
- Unit 7 Being a Smart Shopper 第2课时 Function & Pronunciation 课件 英语 仁爱科普版(2024)七年级下册 英语仁爱科普版(2024)七年级下册.pptx VIP
- 广州市南沙区2023-2024学年八年级上学期期末物理提升卷(含答案).doc VIP
- 2025年产前筛查师唐氏综合征筛查操作技能模拟考核试题及答案解析.docx VIP
- 转录因子T-bet下调CTLA-4的功能与机制:从分子基础到临床意义的深度剖析.docx
文档评论(0)