操作系统
文章平均质量分 78
Majmunu
wangc.tech
展开
-
操作系统死锁实验六
操作系统死锁实验六一、实验目的如果一个进程集合中的每个进程都在等待只能由该进程集合中的其他进程才能引发的事件那么该进程集合就是死锁的。产生死锁的必要条件:互斥;请求资源和保持已获得资源不释放;不可抢占;循环等待。二、实验内容1、修改实验五中生产者消费者代码,交换生产者的两个P 操作,设置适当初始值,制造死锁,观察现象。2、制造死锁与解决死锁。两个线程,一个线程在互斥的临界区内打印偶数,另一个线程在互斥的临界区内打印奇数。三、实验步骤1、(1)制造死锁,修改生产者消费者程序,交换两条 P 操作,原创 2021-04-15 21:43:08 · 1902 阅读 · 0 评论 -
操作系统 Peterson 算法和互斥锁实验四
操作系统 Peterson 算法和互斥锁实验四一、实验目的线程的运行时并发的,如果互不相干的线程交替运行不会产生问题。但是如果有共享资源、合作关系的线程之间由于交替运行可能产生问题,例如偶尔出现程序的结果不正常。解决线程并发带来的问题有多种办法,本实验验证如下 2 种方法:利用软件的方法 Peterson 算法来保证临界区的操作属性。利用互斥锁确保共享资源每个时刻只能被一个线程访问。关于互斥锁涉及到几个函数, 详见讲解视频https://www.bilibili.com/video/BV1L54原创 2021-04-06 21:59:37 · 1054 阅读 · 0 评论 -
操作系统--线程并发实验三
操作系统–线程并发实验三一、实验目的线程的运行时并发的,如果互不相干的线程交替运行不会产生问题。但是如果有共享资源、合作关系的线程之间由于交替运行可能产生问题,例如偶尔出现程序的结果不正常。理解临界区的概念:进程中一段需要访问共享资源的代码解决办法由 3 种,理解第 3 种方法:利用硬件提供的常见原子指令实现互斥锁来保证临界区的操作属性,该方法实际应用较多。二、实验内容编写程序threadtest4 创建两个线程,测试由于线程的并发导致了结果的不确定性。编写程序 threadtest5原创 2021-04-06 21:52:19 · 1305 阅读 · 0 评论 -
操作系统进程与线程实验二
操作系统进程与线程实验二一、实验目的:对比进程与线程,理解进程与线程的联系与区别,学会使用多线程相关函数。一个进程中的多个线程之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。线程是进程中的不同执行路径。 多线程是一种多任务并发的工作方式。 Linux系统下的多线程遵循POSIX线程接口,称为pthread。 在linux中线程包括内核线程和用户线程,内核线程有内核管理,不需要我原创 2021-04-06 21:42:12 · 2439 阅读 · 0 评论 -
操作系统信号量实验五
操作系统信号量实验五一、实验目的生产者消费者是一个经典的并发性问题,通过生产者消费者模拟与实现,熟悉Linux 中的多线程编程,并且掌握用信号量处理线程间的同步和互斥问题。**二、实验内容**问题描述:缓冲区大小为N,生产者产生物品放到缓冲区,消费者将物品从缓冲区移走互斥关系:对缓冲区得访问需要互斥,包括生产者和生产者之间、消费者和消费者之间、生产者和消费者之间。同步关系:当缓冲区满时生产者进程需要等待,当缓冲区空时消费者进程需要等待。解题思路:用信号量解决生产者消费者问题。互原创 2021-04-06 21:00:07 · 997 阅读 · 0 评论 -
操作系统进程实验一
操作系统进程实验一一、实验目的:理解进程定义:进程是一个程序的一次执行的过程,同时也是资源分配的最小单元。程序与进程的区别:程序是静态的,是一些指令的有序集合。进程是动态的,是程序的执行过程,包括动态创建、调度和消亡的整个过程。一个程序可以被执行多次,可以对应多个进程。理解进程状态:进程在运行中不断地改变其运行状态。通常,一个运行进程必须具有以下三种基本状态:运行态、就绪态、阻塞态。实际操作系统中都超过三种状态,例如Linux操作系统中一般有6种状态。二、实验内容:使用各种系统命令查看进程的相原创 2021-04-06 21:20:17 · 1185 阅读 · 0 评论