随笔分类 -  操作系统原理

摘要:第一章、计算机系统概述 1.操作系统的目标和功能 1.操作系统是计算机资源的管理者 处理机管理(进程控制、进程同步、进程通信、死锁处理、处理机调度) 存储器管理(提高内存利用率,内存的分配与回收、地址映射、内存保护与共享、内存扩充) 文件管理(计算机中的信息都是以文件的形式存在的) 设备管理(完成用 阅读全文
posted @ 2021-02-16 20:26 王陸 阅读(1136) 评论(1) 推荐(2) 编辑
摘要:在之前系列的博客中介绍了页面调度算法的原理: https://www.cnblogs.com/wkfvawl/p/11700301.html#_label2_3 这里编写代码模拟一些页面调度算法的实现。 (1)最佳淘汰算法——OPT(Optimal)这是Belady贝莱迪于1966年提出的一种理论上 阅读全文
posted @ 2019-12-16 14:56 王陸 阅读(4414) 评论(0) 推荐(0) 编辑
摘要:操作系统:操作系统是合理组织计算机的工作流程,有效控制和管理计算机系统的各类资源,并方便用户使用计算机的程序的集合,是最基本的系统软件。 操作系统提供给用户的接口:命令接口、程序接口、图形用户接口 操作系统的主要内容:用户接口、内核和核外程序。 操作系统的结构主要有:整体式结构、层次式结构、虚拟机结 阅读全文
posted @ 2019-12-01 17:03 王陸 阅读(2249) 评论(0) 推荐(1) 编辑
摘要:之前写过一篇关于死锁和银行家算法的详细描述的博客https://www.cnblogs.com/wkfvawl/p/11598647.html 写这篇博客的目的,主要是详细讲解一下银行家算法以及代码的实现 Dijkstra在1965年提出的银行家算法是著名的死锁避免算法,这个用于一个银行家给多个顾客 阅读全文
posted @ 2019-11-25 18:35 王陸 阅读(80646) 评论(9) 推荐(33) 编辑
摘要:一、IO设备的基本概念和分类 1、什么是IO设备? UNIX系统将外部设备抽象为一种特殊的文件,用户可以使用与文件操作相同的方式对外部设备进行操作。 Write操作:向外部设备写数据。 Read操作:从外部设备读入数据。 2、IO设备的分类——按使用特性 3、IO设备的分类——按传输速率分类 4、I 阅读全文
posted @ 2019-11-20 15:26 王陸 阅读(1095) 评论(3) 推荐(1) 编辑
摘要:一、安全性概述 系统的安全性涉及系统的保护(防破坏)与保密(防窃)两个方面,旨在保障系统中数据的完整性、可用性和机密性。 1、安全性的内涵 系统的安全性包括以下几方面的内容:① 保护系统内的各种资源免遭自然与人为的破坏;② 估计到操作系统存在的各种威胁,以及它存在的特殊问题;③ 开发与实施卓有成效的 阅读全文
posted @ 2019-11-19 19:50 王陸 阅读(8153) 评论(0) 推荐(7) 编辑
摘要:一、文件存储空间管理 分配方式 当今OS几乎都采用离散分配方式(似内存分页),以节省外存空间。采用链接分配法导致链接文件,如MS DOS;采用索引分配法将形成索引文件,如UNIX。UNIX仅对其对换区采用连续分配方式,以加快对换过程。 分配算法 似首次适应法的扩充(即顺序查找分配法) 分配算法用的主 阅读全文
posted @ 2019-11-16 13:26 王陸 阅读(1749) 评论(2) 推荐(4) 编辑
摘要:一、文件系统概述 软件资源管理信息长期保存的需要存储介质:磁盘、光盘、磁带…完成外存信息的管理和存取 在前面的学习中,我们知道文件也是一种系统资源。 这里先给出文件和文件系统的定义。 1、文件 外存中具有符号名的一组有逻辑意义的信息项的集合。 2、文件系统 指OS中管理文件的那一部分软件。它负责管理 阅读全文
posted @ 2019-11-13 10:53 王陸 阅读(8667) 评论(4) 推荐(13) 编辑
摘要:一、磁盘的结构 其实在上个学期学习计算机组成原理的时候,我写过一篇博客 计算机组成原理——辅助存储器 这篇博客中有关于磁盘的介绍和一些计算,由于本课是操作系统,这里我根据王道考研讲解的磁盘设备,再总结一下,主要的侧重点还是有点不同。 1、磁盘、磁道和扇区 2、盘面和柱面 3、磁盘的物理地址 磁盘块的 阅读全文
posted @ 2019-11-02 17:48 王陸 阅读(2034) 评论(10) 推荐(4) 编辑
摘要:一、段式存储管理 1、分段 进程的地址空间:按照程序自身的逻辑关系划分为若干个段,每个段都有一个段名(在低级语言中,程序员使用段名来编程),每段从0开始编址。 内存分配规则:以段为单位进行分配,每个段在内存中占连续空间,但各段之间可以不相邻。 分段系统的逻辑地址结构由段号(段名)和段内地址(段内偏移 阅读全文
posted @ 2019-10-24 16:38 王陸 阅读(24153) 评论(3) 推荐(20) 编辑
摘要:分区式存储管理最大的缺点是碎片问题严重,内存利用率低。究其原因,主要在于连续分配的限制,即它要求每个作用在内存中必须占一个连续的分区。 如果允许将一个进程分散地装入到许多不相邻的分区中,便可充分地利用内存,而无需再进行“紧凑”。 基于这一思想,产生了“非连续分配方式”,或者称为“离散分配方式”。 连 阅读全文
posted @ 2019-10-18 19:30 王陸 阅读(27708) 评论(9) 推荐(20) 编辑
摘要:分区存储管理是把主存储器中的用户区作为一个连续区或分成若干个连续区进行管理,每个连续区中可装入一个作业。 多道程序系统一般都采用多个分区的存储管理,具体可分为固定分区和可变分区两种方式。 一、固定分区存储管理 把主存中可分配的用户区域预先划分成若干个连续的分区,每个连续区的大小可以相同,也可以不同。 阅读全文
posted @ 2019-10-16 19:00 王陸 阅读(11969) 评论(1) 推荐(7) 编辑
摘要:一、物理地址和逻辑地址 物理地址(绝对地址):指内存单元的地址.主存中一系列存储物理单元。 物理地址的集合称为物理地址空间,也叫绝对地址空间或实空间或存储空间,亦即内存空间。存储空间中的单元一般都是按字节从0开始连续编址的,如一个256MB的内存,其地址范围是0 ~ (256M—1)。 逻辑地址(相 阅读全文
posted @ 2019-10-15 17:24 王陸 阅读(2932) 评论(0) 推荐(2) 编辑
摘要:一、什么是死锁 死锁(Deadlock):是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。称此时系统处于死锁状态或系统产生了死锁。称这些永远在互相等待的进程为死锁进程。所占用的资源或者需要它们进行某种合作的其它进程就会相继陷入死锁,最终 阅读全文
posted @ 2019-09-27 16:17 王陸 阅读(14783) 评论(0) 推荐(10) 编辑
摘要:之前学了信号量机制的几个问题: 生产者消费者问题: https://www.cnblogs.com/wkfvawl/p/11529681.html 多生产者消费者问题:https://www.cnblogs.com/wkfvawl/p/11531382.html 吸烟者问题:https://www. 阅读全文
posted @ 2019-09-20 16:26 王陸 阅读(3841) 评论(0) 推荐(5) 编辑
摘要:一、问题描述 要求: 1、允许多个读者可以同时对文件执行读操作。 2、只允许一个写者往文件中写信息。 3、任一写者在完成写操作之前不允许其他读者或写者工作。 4、写者执行写操作前,应让已有的读者和写者全部退出。 二、问题分析 读者写者问题最核心的问题是如何处理多个读者可以同时对文件的读操作。 三、如 阅读全文
posted @ 2019-09-18 08:33 王陸 阅读(17747) 评论(2) 推荐(10) 编辑
摘要:这次介绍的几个IPC(Inter-process Communication)进程间的通讯问题,加上上篇博客介绍的生产者-消费者问题及其变形,都是非常经典的IPC问题,在王道老师讲解的时候,弹幕一片“秒啊”、“666”,这几个问题的解决方案也着实让人着迷,当我带着怀疑去验证时候,又有一种豁然开朗的感 阅读全文
posted @ 2019-09-17 15:51 王陸 阅读(3886) 评论(0) 推荐(3) 编辑
摘要:一、问题描述 上一个例子中的生产者只生产一种产品,消费者也只消费一种产品,而这里生产者和消费者生产和消费的产品类型是不同的,这里“多生产者和多消费者”的“多”不是多个,而是多类,多类生产者和多类消费者! 二、问题分析 三、如何实现 考虑一个问题,可不可以不要这个互斥信号量mutex? 原因在于:本题 阅读全文
posted @ 2019-09-17 08:11 王陸 阅读(3812) 评论(1) 推荐(3) 编辑
摘要:一、问题描述 二、问题分析 该问题中出现的主要的两种关系: ①生产者—消费者之间的同步关系表现为:一旦缓冲池中所有缓冲区均装满产品时,生产者必须等待消费者提供空缓冲区;一旦缓冲池中所有缓冲区全为空时,消费者必须等待生产者提供满缓冲区。 ②生产者—消费者之间还有互斥关系:由于缓冲池是临界资源,所以任何 阅读全文
posted @ 2019-09-16 20:23 王陸 阅读(17548) 评论(0) 推荐(18) 编辑
摘要:一、知识总览 信号量机制的基本原理:两个或多个进程可以利用彼此间收发的简单的信号来实现“正确的”并发执行,一个进程在收到一个指定信号前,会被迫在一个确定的或者需要的地方停下来,从而保持同步或互斥。 二、整型信号量 三、记录型信号量 typedef struct{ int value; struct 阅读全文
posted @ 2019-09-14 21:15 王陸 阅读(5799) 评论(2) 推荐(0) 编辑