![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 90
操作系统
瑞瑞ruirui
这个作者很懒,什么都没留下…
展开
-
实验报告:利用消息队列实现进程间的通信
(2)Server 进程向 Client 进程发送其进程 ID,Client 进程同时也向 Server 进程发送其进程 ID,双方接收到消息后,将所接收到的进程 ID 输出到屏幕上。Server 进程向 Client 进程发送其进程 ID,Client 进程同时也向 Server 进程发送其进程 ID,双方接收到消息后,将所接收到的进程 ID 输出到屏幕上。(1)编程实现两个进程通过消息队列进行通信,一个 Server 进程,一个 Client 进程。创建子进程作为客户进程,父进程作为服务进程。原创 2021-01-17 20:03:50 · 1276 阅读 · 0 评论 -
实验报告:利用管道实现进程的通信
用 fork 函数创建子进程 p1 和 p2,p1 进行关闭管道读端、向管道写数据、子进程结束,p2 也同样。每个进程各自有不同的用户地址空间,进程之间要交换数据必须通过内核(内核开辟的缓冲区),内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。子进程退出时,内核将子进程置为僵尸状态,这个进程称为僵尸进程,它只保留最小的一些内核数据结构,以便父进程查询子进程的退出状态。(2)利用管道实现进程的通信的实现流程图。子进程向管道写内容,父进程读取管道内容。原创 2021-01-17 20:03:30 · 2324 阅读 · 1 评论 -
实验报告:生产者/消费者问题的实现
为使生产者进程与消费者进程能并发执行,在两者之间设置了一个具有 n 个缓冲区的缓冲池:生产者进程从文件中读取一个数据,并将它存放到一个缓冲区中;先随机生成一个字母作为生产产品,然后取一个空缓冲区(empty-1),缓冲区加锁,投放产品生产并移动下标 in,然后缓冲区解锁,增加一个满缓冲区(full+1)。(1)创建 3 个进程(或线程)作为生产者,4 个进程(或线程)作为消费者。先取一个满缓冲区(full-1),缓冲区加锁,消费产品并移动下标 out,然后缓冲区解锁,增加一个空缓冲区(empty-1)。原创 2021-01-17 20:02:59 · 6026 阅读 · 1 评论 -
实验报告:哲学家就餐问题的实现
该问题是描述有五个哲学家共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个碗和五只筷子,他们的生活方式是交替地进行思考和进餐。平时,一个哲学家进行思考,饥饿时便试图取用其左右最靠近他的筷子,只有在他拿到两只筷子时才能进餐。进餐完毕,放下筷子继续思考。如果可以取左右两边的筷子,那么哲学家从思考状态转为就餐状态。就餐结束后,哲学家放下左右两边的筷子,并从就餐状态又转为思考状态。每个哲学家若想从思考状态转为就餐状态时,先取左边的筷子,在尝试取右边的筷子。(3)在 Ubuntu 系统下编程实现哲学家就餐问题。原创 2021-01-17 20:02:10 · 3637 阅读 · 1 评论 -
复习笔记:操作系统基础
操作系统基础知识点整理操作系统的特征:并发性,共享性,虚拟性,异步性。操作系统的主要功能:进程管理:进程控制,进程同步,进程通信,进程调度;存储器管理:内存分配,内存保护,地址映射,内存扩充;设备管理:缓冲管理,设备分配,设备处理;文件管理:文件存储空间的管理,目录管理,文件的读写管理和保护;提供友好的用户接口:用户接口,程序接口。进程的状态:就绪状态:进程已获得除CPU外的所有资源。执行状态:进程正在CPU上执行。阻塞状态:等待I/O操作完成。创建状态:进程正在被创建原创 2020-09-02 19:32:36 · 184 阅读 · 0 评论