操作系统
文章平均质量分 65
从零开始学习的ZHL
已工作但很弱鸡的学习者
展开
-
进程和线程
一、概念1、进程(process)狭义定义:进程就是一段程序的执行过程。广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。简单的来讲进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据...原创 2018-07-18 23:01:04 · 98 阅读 · 0 评论 -
操作系统学习笔记——进程调度
执行模型:程序在CPU突发和I/O中交替 每个调度决定都是关于在下一个CPU突发时将哪个工作交给CPU; 在时间分片机制下,线程可能在结束当前CPU突发前被迫放弃CPU CPU使用率:CPU处于忙状态所占时间的百分比吞吐量:在单位时间内完成的进程数量周转时间:一个进程从初始化到结束,包括所有等待时间所花费的时间等待时间:进程在就绪队列中的总时间响...原创 2018-09-01 12:04:18 · 327 阅读 · 0 评论 -
操作系统学习笔记——管程,用管程解决生产者消费者问题
抽象程度比信号量更高。目的:分离互斥和条件同步的关注什么是管程: 一个锁:指定临界区;0或者多个条件变量:等待/通知信号量用于管理并发访问共享数据。一般方法: 收集在对象/模块中的相关共享数据;定义方法来访问共享数据。 Lock Lock::Acquire() - 等待知道锁可用,然后抢占锁 Lock::Release()...原创 2018-09-04 11:34:12 · 2790 阅读 · 0 评论 -
操作系统学习笔记——读者写者问题
动机:共享数据的访问两种类型使用者:读者,不需要修改数据;写者,读取和修改数据问题的约束: 允许同一时间有多个读者,但在任何时候只有一个写者;当没有写者时,读者才能访问数据;当没有读者和写者时,写者才能访问数据;在任何时候只能有一个线程可以操作共享变量。 多个并发进程的数据集共享:读者-只读数据集;他们不执行任何更新。写者 - 可以读取和写入共享数据: 数据集...原创 2018-09-04 11:54:24 · 972 阅读 · 0 评论 -
操作系统学习笔记——互斥,实现的三种方法
Race Condition 竞态条件。避免竞态条件:原子操作。原子操作是指一次不存在任何中断或者失败的执行。该执行成功结束,或者根本没有执行,并且不应该发现任何部分执行的状态临界区,是指进程中的一段需要访问共享资源并且当另一个进程处于相应代码区域时便不会被执行的代码区域。互斥,当一个进程处于临界区并访问共享资源时,没有其他进程会处于临界区并且访问任何相同的共享资源。死锁:两个...原创 2018-09-02 11:26:41 · 4898 阅读 · 0 评论 -
操作系统学习笔记——信号量
通过锁可以实现互斥的访问,但是光有互斥不够,还需要同步的机制,甚至在临界区需要多个线程进入临界区执行,所以需要更高层的同步互斥语义。 信号量抽象数据类型 一个整型(sem),两个原子操作 P():sem减 1 ,如果sem <0 ,等待,否则继续; V():sem 加1,如果sem<=0,唤醒一个等待的P 信号量的使用:信号量特点:...原创 2018-09-04 10:41:47 · 395 阅读 · 0 评论 -
操作系统学习笔记——哲学家就餐问题
共享数据: data set, Semaphore fork[5] initialized to 1take_fork(i) : P(fork[i]), put_fork(i): V(fork[i])作为哲学家:指导原则:要么不拿,要么就拿两把叉子S1 思考中。。。S2 进入饥饿状态;S3 如果左邻居或右邻居正在进餐,等待;否则转S4S4 拿起两把叉子;S5 吃面条。。...原创 2018-09-05 12:09:46 · 731 阅读 · 0 评论 -
操作系统学习笔记——死锁(系统模型,特征,预防,避免,检测,恢复,银行家算法)
系统模型:资源类型R1,R2,....,RM CPU,内存,I/O设备等每个资源类型Ri有Wi实例每个进程使用资源如下: request/get free resourceuse/hold requested/used resourcerelease free resource可重复使用的资源在一个时间只能...原创 2018-09-06 12:02:43 · 780 阅读 · 0 评论 -
操作系统学习笔记——页面置换算法,Belady现象,抖动
功能:当缺页中断发生,需要调入新的页面而内存已满时,选择内存当中哪个物理页面被置换。目标:尽可能地减少页面的换进换出次数(即缺页中断的次数)。把未来不再使用的或短期内较少使用的页面换出。通常只能在局部性原理指导下依据过去的统计数据来进行预测 局部页面置换算法:最优页面置换算法(OPT),先进先出算法(FIFO),最近最久未使用算法(LRU),时钟页面置换算法(Clock),最不常用...原创 2018-08-31 12:08:05 · 15253 阅读 · 1 评论 -
一个进程可以创建多少线程
https://www.cnblogs.com/Leo_wl/p/5969621.html理论上,一个进程可用虚拟空间是2G,默认情况下,线程的栈的大小是1MB,所以理论上最多只能创建2048个线程。如果要创建多于2048的话,必须修改编译器的设置。#include<windows.h>#include<process.h>#include<stdio....转载 2018-07-18 23:10:23 · 3924 阅读 · 0 评论 -
线程五大状态
https://blog.csdn.net/hellorichen/article/details/52839396线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。1.新建状态当用new操作符创建一个线程时。此时程序还没有开始运行线程中的代码。2.就绪状态一个新创建的线程并不自动开始运行,要执行线程,必须调用线程的start...转载 2018-07-26 08:49:02 · 133 阅读 · 0 评论 -
进程间的五种通信方式介绍
转自:https://blog.csdn.net/wh_sjc/article/details/70283843进程间通信(IPC)介绍进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams...转载 2018-07-26 08:51:16 · 234 阅读 · 0 评论 -
常见进程调度算法
转自:https://blog.csdn.net/leex_brave/article/details/51638300 先来先服务 (FCFS,first come first served) 在所有调度算法中,最简单的是非抢占式的FCFS算法。 算法原理:进程按照它们请求CPU的顺序使用CPU.就像你买东西去排队,谁第一个排,谁就先被执行,在它执行的过程中,不会中断它。当其他人也想进...转载 2018-07-26 08:52:16 · 178 阅读 · 0 评论 -
什么是死锁及死锁的必要条件和解决方法
https://blog.csdn.net/caozhao3344/article/details/77199552 一、要点提示(1) 掌握死锁的概念和产生死锁的根本原因。(2) 理解产生死锁的必要条件--以下四个条件同时具备:互斥条件、不可抢占条件、占有且申请条件、循环等待条件。(3) 记住解决死锁的一般方法,掌握死锁的预防和死锁的避免二者的基本思想。(4) 掌握死锁...转载 2018-07-26 08:56:05 · 251 阅读 · 0 评论 -
银行家算法
转自:https://www.cnblogs.com/chuxiuhong/p/6103928.html死锁避免——银行家算法的应用背景要想说银行家,首先得说死锁问题,因为银行家算法就是为了死锁避免提出的。那么,什么是死锁?简单的举个例子:俩人吃饺子,一个人手里拿着酱油,一个人手里拿着醋,拿酱油的对拿着醋的人说:“你把醋给我,我就把酱油给你”;拿醋的对拿着酱油的人说:“不,你把酱油给我,我...转载 2018-07-26 08:57:29 · 175 阅读 · 0 评论 -
自旋锁
自旋锁是专为防止多处理器并发而引入的一种锁,它在内核中大量应用于中断处理等部分(对于单处理器来说,防止中断处理中的并发可简单采用关闭中断的方式,即在标志寄存器中关闭/打开中断标志位,不需要自旋锁)。它是为实现保护共享资源而提出一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,也就说,在任何时刻最多只...原创 2018-08-14 21:40:20 · 187 阅读 · 0 评论 -
进程互斥和同步
https://www.cnblogs.com/exRunner/p/7576965.html一、进程互斥由于进程具有独立性和异步性等并发特征,计算机的资源有限,导致了进程之间的资源竞争和共享,也导致了对进程执行过程的制约。1、临界资源和临界区(临界部分)临界资源:一次只能供一个进程访问的资源。临界区:把不允许多个并发进程交叉执行的一段程序称为临界区(critical region...转载 2018-08-14 22:45:20 · 373 阅读 · 0 评论 -
操作系统学习笔记——进程间通信IPC
概述(a)是一种间接通信。A把消息发到内核,内核再转到B(b)直接通信。直接通信:进程必须正确的命名对方: send(P,message) - 发送信息到进程P receive(Q,MESSAGE) - 从进程Q接收消息通信链路的属性 自动建立链路 一条链路恰好对应一对通信进程 每对进程之间只有一个链接存在 链接可以是单向的,...原创 2018-09-13 12:35:07 · 195 阅读 · 0 评论