![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统原理
wawlian
独善其身,兼济天下
展开
-
《现代操作系统》读书笔记之——进程间通信1
很多时候,进程需要和其他的进程进行通信。比如shell中的管道命令:ps -ef | grep nginx,一个命令的输出,作为另一个进程的输入,这就是进程间通信(Interprocess Communication)。 进程间通信主要需要解决三个问题: 1.一个进程如何给另一个进程传递信息 2.如何确保进程之间不互相干扰、妨碍 3.当进程间出现依赖关系时,原创 2012-01-14 12:31:33 · 1256 阅读 · 0 评论 -
《现代操作系统》读书笔记之——进程间通信2
7.实现进程互斥的几种方案之——TSL指令 前面介绍了几种方案,都是通过软件的方式实现互斥,下面的这种方式需要借助硬件设计的帮助来实现互斥。这一点在多CPU电脑的设计中尤其普遍。这种方案需要引进一条指令: TSL RX,LOCK 这条指令的含义是,读取内存单元LOCK中的内容到寄存器RX中,并且为内存单元LOCK重新设置一个非0值。TSL指令的操作被设计为不可分的,也就是说,原创 2012-01-14 20:53:22 · 1481 阅读 · 0 评论 -
《现代操作系统》读书笔记之——进程间通信3
12.互斥量(mutex) 当信号量(Semaphore)的计数功能不再需要,信号量简化之后就成为一种新的变量互斥量(mutex)。互斥量在处理共享资源和代码之间的互斥访问方面非常有用。互斥量实现起来简单高效,这一点对于用户空间的线程库非常有用。 互斥是那种只有两种状态,但每次只能处在其中一种状态的变量。这两种状态分别是锁定和非锁定状态。因此,只需要一个比特就能表示互斥量的两种原创 2012-01-17 00:23:19 · 1736 阅读 · 0 评论 -
《现代操作系统》读书笔记之——进程调度(一)
如果计算机支持多道程序设计,那么它会经常碰到多个进程或者线程在同一时刻竞争CPU。只要当两个进程同时进入就绪状态,这种情况就会发生。但是CPU只有一个,那么这时候就需要做一个选择:到底接下来该选择哪个进程运行。操作系统做这个选择的部分就叫做调度器(scheduler),而使用到的算法叫做调度算法(scheduling algorithm)。 很多对进程调度使用的东西对于线程调度同样适原创 2012-02-17 20:50:36 · 1007 阅读 · 0 评论 -
《现代操作系统》读书笔记之——进程调度(二)
7.交互系统的调度算法 时间片轮转调度算法(Round-Robin Scheduling) 时间片轮换调度算法是最古老、最简单、最公平并且使用最广泛的调度算法之一。每个进程被分配一段时间间隔,叫做时间片(quantum)。进程在这个时间间隔内允许运行,如果时间片用完了,那么CPU将会被抢占并且分给别的进程。如果在时间片结束之前,进程阻塞或者是结束了,那么CPU也原创 2012-02-21 19:56:01 · 1602 阅读 · 0 评论