作业3-参考解答.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
作业3-参考解答

作业3 2011年3月21日 姓名: 班级: 学号: 一个公司内部局域网内有n台计算机共享5台网络打印机,请用PV原语描述这些计算机使用网络共享打印机的算法过程。(描述算法前,请先定义信号量,并说明信号量的含义,及其取值范围)。 有N个进程,互斥信号mutex的初值为5, mutex的取值范围:5~—(N-5) 2)其物理含义是: 当mutex=5时,表示公司内部局域网内有N台计算机,5台网络打印机是空闲的,表示可用资源个数; 当mutex=0时,表示5台网络打印机都开始工作,每个窗口都被分配,没有等待的打印机,可用资源为0; 当mutex=-(N-5)时,表示一共有N台计算机,其中5台计算机开始使用打印机,分别占有一台打印机,还有N-5台计算机处于等待中,绝对值表示等待进程个数。 结论: 当mutex≥0时其值表示可用资源个数; 当mutex<0时其绝对值表示等待进程的个数。 算法: 2).1.主函数算法: main() { int mutex=5; cobegin P1(); …Pi();…Pn(); coend } 2).2.有i台计算机使用打印机的算法: Pi() { P(mutex); 使用打印机; V(mutex); } 什么是父进程?什么是子进程?二者之间有什么关系? 2.1用有关的fork()函数说明父进程和子进程: fork( ) 创建一个新进程。 系统调用格式: pid=fork( ) 参数定义: int fork( ) fork( )返回值意义如下: 0:在子进程中,pid变量保存的fork( )返回值为0,表示当前进程是子进程。 0:在父进程中,pid变量保存的fork( )返回值为子进程的id值(进程唯一标识符)。 -1:创建失败。 如果fork( )调用成功,它向父进程返回子进程的PID,并向子进程返回0,即fork( )被调用了一次,但返回了两次。此时OS在内存中建立一个新进程,所建的新进程是调用fork( )父进程(parent process)的副本,称为子进程(child process)。子进程继承了父进程的许多特性,并具有与父进程完全相同的用户级上下文。父进程与子进程并发执行。 2.2子进程和父进程的关系: 1)Linux是一个多用户操作系统,在同一时间会有许多的用户在争夺系统的资源。有时进程为了早一点完成任务就创建子进程来争夺资源。 一旦子进程被创建,父子进程一起从fork处继续执行,相互竞争系统的资源。 2)fork()是通过简单的资源拷贝来实现创建子进程,并且fork之后不exec的话父子进程是共享同一个进程空间的,但对于子进程来说是只读的 fork 创建一个新进程 clone 按指定条件创建子进程 execve 运行可执行文件 exit 中止进程 _exit 立即中止当前进程 getdtablesize 进程所能打开的最大文件数 getpgid 获取指定进程组标识号 setpgid 设置指定进程组标志号 getpgrp 获取当前进程组标识号 setpgrp 设置当前进程组标志号 getpid 获取进程标识号 getppid 获取父进程标识号 getpriority 获取调度优先级 setpriority 设置调度优先级 modify_ldt 读写进程的本地描述表 nanosleep 使进程睡眠指定的时间 nice 改变分时进程的优先级 pause 挂起进程,等待信号 personality 设置进程运行域 prctl 对进程进行特定操作 ptrace 进程跟踪 sched_get_priority_max 取得静态优先级的上限 sched_get_priority_min 取得静态优先级的下限 sched_getparam 取得进程的调度参数 sched_getscheduler 取得指定进程的调度策略 sched_rr_get_interval 取得按RR算法调度的实时进程的时间片长度 sched_setparam 设置进程的调度参数 sched_setscheduler 设置指定进程的调度策略和参数 sched_yield 进程主动让出处理器,并将自己等候调度队列队尾 vfork 创建一个子进程,以供执行新程序,常与execve等同时使用 wait 等待子进程终止 wait3 参见wait waitpid 等待指定子进程终止 wait4 参见waitpid capget 获取进程权限 capset 设置进程权限 getsid 获取会晤标识号 setsid 设置会晤标识号 fcntl 文件控制 open

文档评论(0)

didala + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档