2个操作系统问题

1.如何用软件的方法解决,临界资源的互斥访问2.某高校计算机系开设网络课并安排上机实习,假设机房共有2m台机器,有2n名学生选该课,规定:①每2个学生组成一组,各占一台机... 1.如何用软件的方法解决,临界资源的互斥访问
2.某高校计算机系开设网络课并安排上机实习,假设机房共有2m台机器,有2n名学生选该课,规定: ① 每2个学生组成一组,各占一台机器,协同完成上机实习;
② 只有一组2个学生到齐,并且此时机房有空闲机器时,该组学生才能进入机房;
③ 上机实习由一名教师检查,检查完毕,一组学生同时离开机房。
试用p、v操作模拟上机实习过程
(第2题 是北大 97考研题)
展开
 我来答
匿名用户
2013-06-20
展开全部
1.软件不大容易解决。我只有源代码。可惜不能上传。要的话给我发消息。

这个例子利用多线程使用不同的排序算法对数据进行排序,每一个线程使用不同的算法。主线程里使用快速排序QuickSort,其他四个算法分别建立四个子线程,在子线程中进行排序。因为每一个线程都要调用函数PrintResult把结果输出到显示器上,所以不同的线程就会争夺着向显示器输出,这样,不同线程的输出就会混合在一起,所以呢必须让线程一个接着一个输出。也就是必须对PrintResult进行互斥控
制。要进行互斥控制,则必须用到Event、Mutex、CrititicalSection、Semaphore等互斥控制量。这个例子可以使用Event、Mutex、CrititicalSection,你可以根据提示修改代码使用其中的一种互斥量进行测试。 我所写的例子没有使用MFC,用的都是SDK的WINAPI,如果使用MFC时有些许差别,但原理是一样的。而且MFC还把线程分成用户界面线程和工作者线程,实质上用户界面线程跟工作者线程的差别是,用户界面线程要继承的基类已经实现了消息循环。
线程建立函数
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
// 安全属性结构指针,可为NULL
DWORD dwStackSize,
// 线程栈大小,若为0表示使用默认值
LPTHREAD_START_ROUTINE lpStartAddress,
// 指向线程函数的指针
LPVOID lpParameter,
// 传递给线程函数的参数,可以保存一个指针值
//所以,线程函数的参数只能是一个32位值
//而且线程函数返回值也有规定,必须是unsigned long
DWORD dwCreationFlags,
// 线程建立是的初始标记,运行或挂起
LPDWORD lpThreadId
// 指向接收线程号的DWORD变量
);
中鼎
2024-04-28 广告
1 .集成性极强。包括对企业内部业务的完整整合能力以及对供应链外部资源的整合能力。具有开放的与流行电子商务平台集成的能力。2 .业界较先进的技术。3 .先进的管理理念和前瞻性考虑。4 .极强的扩展能力。5 .优秀的可维护性和极低的维护成本。... 点击进入详情页
本回答由中鼎提供
匿名用户
2013-06-20
展开全部
第一题是这样的:
var flag:array[0,1]of boolean; turn:0,1
最初 flag[0]=flag[1]=false,turn的初值随意:,进程Pi的一般结构为
repeat
flag[i]:=ture;turn:=j;(前面一句表示临界区可以被访问状态,后面一句表示只有一个进程可以访问)
while(flag[j]and turn=j)do skip;
临界区;
flag[i]:=false;
剩余区;
until false;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式