-
操作系统学习(8)内存分配
内存连续分配管理方式
连续分配方式,是指为一个用户程序分配一个连续的内存空间。它主要包括单一连续分配、固定分区分配和动态分区分配。
单一连续分配
内存在此方式下分为系统区和用户区,系统区仅提供给操作系统使用,通常在低地址部分;用户区是为用户提供的、除系统区之外的内存空间。
这种方式无需进行内存保护。
这种方式的优点是简单、无外部碎片,可以釆用覆盖技术,不需要额外的技术支持。
缺点...
2020-10-04 03:18:54 |
OS
-
操作系统学习(7)内存管理
内存管理
本章主要讲解内存管理和虚拟内存管理。
内存管理包括内存管理概念、交换与覆盖、连续分配管理方式和非连续分配管理方式(分页管理方式、分段管理方式、段页式管理方式)。
虚拟内存管理包括虚拟内存概念、请求分页管理方式、页面置换算法、页面分配策略、工作集和抖动。
内存管理的概念
内存管理(Memory Management)是操作系统设计中最重要和最复杂的内容之一。
虽然计算机硬...
2020-10-04 03:18:54 |
OS
-
操作系统学习(6)死锁
死锁的概念以及产生死锁的原因
死锁的定义
在多道程序系统中,由于多个进程的并发执行,改善了系统资源的利用率并提高了系统的处理能力。
然而,多个进程的并发执行也带来了新的问题——死锁。
所谓死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。
例子
下面我们通过一些实例来说明死锁现象。
先看生活中的一个实例,在一条河上有一座桥,桥面很窄...
2020-10-04 03:18:54 |
OS
-
操作系统学习(5)信号量与管程
信号量:整型、记录型信号量以及利用信号量实现进程互斥和前驱关系
信号量机构是一种功能较强的机制,可用来解决互斥与同步的问题,它只能被两个标准的原语wait(S)和signal(S)来访问,也可以记为“P操作”和“V操作”。
原语是指完成某种功能且不被分割不被中断执行的操作序列,通常可由硬件来实现完成不被分割执行特性的功能。
如前述的“Test-and-Set”和“Swap”指令,就是由...
2020-10-04 03:18:54 |
OS
-
操作系统学习(4)进程同步的基本概念:临界资源、同步和互斥
进程同步的基本概念:临界资源、同步和互斥
在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。
为了协调进程之间的相互制约关系,引入了进程同步的概念。
临界资源
虽然多个进程可以共享系统中的各种资源,但其中许多资源一次只能为一个进程所使用,我们把一次仅允许一个进程使用的资源称为临界资源。
许多物理设备都属于临界资源,如打印机等。此外,还有许多变量、数据等都可以...
2020-10-04 03:18:54 |
OS
-
操作系统学习(3)处理机调度:调度的概念、时机、切换、过程以及调度方式和基本准则
调度的概念
1. 调度的基本概念
在多道程序系统中,进程的数量往往多于处理机的个数,进程争用处理机的情况就在所难免。
处理机调度是对处理机进行分配,就是从就绪队列中,按照一定的算法(公平、髙效)选择一个进程并将处理机分配给它运行,以实现进程并发地执行。
处理机调度是多道程序操作系统的基础,它是操作系统设计的核心问题。
2. 调度的层次
一个作业从提交开始直到完成,往往要经历以下三...
2020-10-04 03:18:54 |
OS
-
操作系统学习(2)线程详解
线程的概念和多线程模型
基本概念
引入进程的目的,是为了使多道程序并发执行,以提高资源利用率和系统吞吐量;
而引入线程,则是为了减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能。
线程最直接的理解就是“轻量级进程”,它是一个基本的CPU执行单元,也是程序执行流的最小单元,由线程ID、程序计数器、寄存器集合和堆栈组成。
线程是进程中的一个实体,是被系统独立调度和分派的基本...
2020-10-04 03:18:54 |
OS
-
操作系统学习(2)进程详解
进程与线程
我们在学习 Java 的时候,听过太多的多线程,然后大部分开发(比如我自己)可能没有弄清楚进程和线程的根本区别。
本系列就来学习下进程和线程。
进程的概念
在多道程序环境下,允许多个程序并发执行,此时它们将失去封闭性,并具有间断性及不可再现性的特征。
为此引入了进程(Process)的概念,以便更好地描述和控制程序的并发执行,实现操作系统的并发性和共享性。
PCB
...
2020-10-04 03:18:54 |
OS