操作系统
Jay乀
这个作者很懒,什么都没留下…
展开
-
生产者与消费者模式
要理解生产消费者问题,首先应弄清PV操作的含义:PV操作是由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S-1; ②如果S³0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。 V(S):①将信号量S的值加1,即S=S+1; ②如果S>0,则该进程继续执行;否则释放队列中第一个等待...转载 2018-06-12 10:08:03 · 351 阅读 · 0 评论 -
逻辑地址空间和物理地址空间
地址空间是一个进程可用于寻址内存的一套地址集合。1、程序经过编译后,每个目标模块都是从0号单元开始编址,称为该目标模块的相对地址(或逻辑地址)。2、当链接程序将各个模块链接成一个完整的可执行目标程序时,链接程序顺序依次按各个模块的相对地址构成统一的从0号单元开始编址的逻辑地址空间。3、用户程序和程序员只需知道逻辑地址,而内存管理的具体机制则是完全透明的,它们只有系统编程人员才会涉及。4、不同进程可...转载 2018-06-15 12:46:24 · 12028 阅读 · 0 评论 -
进程的几种状态
1.进程的五状态模型:运行态:该进程正在执行。就绪态:进程已经做好了准备,只要有机会就开始执行。阻塞态(等待态):进程在某些事情发生前不能执行,等待阻塞进程的事件完成。新建态:刚刚创建的进程,操作系统还没有把它加入到可执行进程组中,通常是进程控制块已经创建但是还没有加载到内存中的进程。退出态:操作系统从可执行进程组中释放出的进程,或由于自身或某种原因停止运行。 2.导致转换的事件:空->新建...转载 2018-06-08 17:05:35 · 36957 阅读 · 0 评论 -
进程和线程
1.定义 a.进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。 b.线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局...转载 2018-06-08 17:14:46 · 120 阅读 · 0 评论 -
进程之间的几种通信方式
进程间通信主要分为:管道、系统IPC(包括消息队列、信号量、共享存储)、套接字(SOCKET)。# 普通管道:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系(进程的亲缘关系通常是指父子进程关系)的进程间使用。管道是单向的、先进先出的、 无结构的、固定大小的字节流,它把一个进程的标准输出和另一个进程的标准输入连接在一起。#流管道:区别于普通管道的是数据可以双向传输。# 命名管道...转载 2018-06-08 17:17:59 · 436 阅读 · 0 评论 -
线程同步的几种方式
1.同步: 就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,同时其它线程也不能调用这个方法。2.线程同步:当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程处于等待状态。在多线程编程里面,一些敏感数据不允许被多个线程同时访问,此时就使用同步访问技术,保证数据在任何时刻,最多有一个线程访问,以保证数...转载 2018-06-08 17:20:39 · 601 阅读 · 0 评论 -
基本分页、请求分页储存管理方式
基本分页储存管理方式具有如下特征:1) 一次性。要求将作业全部装入内存后方能运行。许多作业在每次运行时,并非其全部程序和数据都要用到。如果一次性地装入其全部程序,造成内存空间的浪费。2) 驻留性。作业装入内存后,便一直驻留在内存中,直至作业运行结束。尽管运行中的进程会因I/O而长期等待,或有的程序模块在运行过一次后就不再需要(运行)了,但它们都仍将继续占用宝贵的内存资源。请求分页储存管理:它是实现...转载 2018-06-19 14:10:53 · 6084 阅读 · 1 评论 -
基本分段、请求分段储存管理方式
基本分段储存管理:段式管理方式是按照用户进程中的自然段划分逻辑空间。例如,用户进程由主程序、两个子程序、栈和一段数据组成,于是可以把这个用户进程划分为5个段,每段从0开始编址,并分配一段连续的地址空间(段内要求连续,段间不要求连续,因此整个作业的地址空间是二维的)。其逻辑地址由段号S与段内偏移量W两部分组成。与分页管理类似,分段管理的保护方法主要有两种:一种是存取控制保护,另一种是地址越界保存。地...转载 2018-06-19 14:15:25 · 5390 阅读 · 0 评论 -
分段分页方式的比较各自优缺点
分段和分页其实都是一种对地址的划分或者映射的方式。 两者的区别主要有以下几点:1)页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要(也是对用户透明的)。段是信息的逻辑单位,它含有一组其意义相对完整的信息(比如数据段、代码段和堆栈段等)。分段的目的是为了能更好的满足用户的需要(用户也是可以使用的)。2)页的大小...转载 2018-06-19 14:23:56 · 11324 阅读 · 0 评论 -
几种页面置换算法
1. 最佳置换算法(OPT)(OPTimalreplacement理想置换算法)这是一种理想情况下的页面置换算法,但实际上是不可能实现的。该算法的基本思想是:发生缺页时,有些页面在内存中,其中有一页将很快被访问(也包含紧接着的下一条指令的那页),而其他页面则可能要到10、100或者1000条指令后才会被访问,每个页面都可以用在该页面首次被访问前所要执行的指令数进行标记。最佳页面置换算法只是简单地...转载 2018-06-19 14:37:55 · 1943 阅读 · 0 评论 -
DMA(直接内存存取)
DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术。 要把外设的数据读入内存或把内存的数据传送到外设,一般都要通过CPU控制完成,如CPU程序查询或中断方式。利用中断进行数据传送,可以大大提高CPU的利用率。 但是采用中断传送有它的缺点,对于一个高速I/O设备,以及批量交换数据的情况,只能采用DMA方式,才能解决效率和速度问题。DMA在外设与内存间直接进行数据交换,而不通过CPU...转载 2018-06-19 15:12:06 · 1781 阅读 · 0 评论 -
区分内存、外存、主存、辅存
对一般计算机而言,主存=内存 指计算机中的内存条;外存=辅存 如:硬盘、U盘、光盘及软盘等; 但在计算机组成结构中存储器的种类很多,按其用途可分为:主存储器和辅助存储器;主存储器又称内存储器(简称内存)。内存又称主存,是CPU能直接寻址的存储空间,它的特点是存取速率快。内存是电脑中主要部件,它是相对于外存来说。内存一般采用半导体存储单元,包括随机存储器(RAM)、只读存储器(ROM)和高级缓存(C...转载 2018-06-19 16:05:21 · 5302 阅读 · 0 评论 -
内存管理技术
内存管理技术:(1)固定分区说明:在系统生成阶段,内存被划分成许多静态分区。进程可以被装入到大于或等于自身大小的分区。优势:实现简单,只需要极少的操作系统开销。缺点:由于有内部碎片,对内存的使用不充分;活动进程的最大数目是固定的。(2)动态分区说明:分区是动态创建的,因而使得每个进程可以被装入与自身大小正好相等的分区中。优势:没有内部碎片;可以更充分的使用内存。缺点:由于需要压缩外部碎片,处理器利...转载 2018-06-15 11:34:28 · 2464 阅读 · 0 评论 -
内存连续分配采用的几种算法
内存分配 连续分配方式,是指为一个用户程序分配一个连续的内存空间。它主要包括单一连续分配、固定分区分配和动态分区分配。单一连续分配 内存在此方式下分为系统区和用户区,系统区仅提供给操作系统使用,通常在低地址部分;用户区是为用户提供的、除系统区之外的内存空间。这种方式无需进行内存保护。这种方式的优点是简单、无外部碎片,可以釆用覆盖技术,不需要额外的技术支持。缺点是只能用于单用户、单任务的操作系统...转载 2018-06-15 10:14:24 · 3076 阅读 · 0 评论 -
内核态与用户态
1.用户态和核心态的区别当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(3级)用户代码中运行。特权级显然是非常有效的管理和控...转载 2018-06-12 11:53:38 · 459 阅读 · 0 评论 -
内存池、线程池、进程池
首先介绍一个概念“池化技术 ”。池化技术就是:提前保存大量的资源,以备不时之需以及重复使用。池化技术应用广泛,如内存池,线程池,连接池等等。内存池相关的内容,建议看看Apache、Nginx等开源web服务器的内存池实现。 由于在实际应用当做,分配内存、创建进程、线程都会设计到一些系统调用,系统调用需要导致程序从用户态切换到内核态,是非常耗时的操作。因此,当程序中需要频繁的...转载 2018-06-12 11:56:34 · 179 阅读 · 0 评论 -
线程的实现方式(用户线程与内核线程的区别)
线程的实现可分为两大类,用户级线程(user-levelthread,ULT)和内核级线程(kernel-levelthread,KLT)。后者又称为内核支持的线程或轻量级进程。(1)用户级线程在一个纯粹的用户级线程软件中,有关线程管理的所有工作都由应用程序完成,内核意识不到线程的存在。使用用户级线程而不是内核级线程的优点有:线程切换不需要内核态特权,进程并不需要为了线程管理而切换到内核态可以为应...转载 2018-06-12 16:22:14 · 3344 阅读 · 0 评论 -
死锁
1. 死锁的概念在两个或者多个并发进程中,如果每个进程持有某种资源而又等待其它进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗的讲就是两个或多个进程无限期的阻塞、相互等待的一种状态。产生死锁的原因主要是:1) 因为系统资源不足。2) 进程运行推进的顺序不合适。3) 资源分配不当等2. 死锁产生的四个条件(有一个条件不成立,则不会产生死锁)互斥条件:...转载 2018-06-12 18:00:45 · 178 阅读 · 0 评论 -
进程
进程由操作系统控制和协调并发程序之间的资源共享和竞争,避免发生预料之外的错误。我们需要一个能够描述程序的执行过程且能用来共享资源的基本单位,这个基本单位被称为进程(或者任务)。进程:进程是可以并发执行的计算部分。 进程是一个独立的可以调度的活动。 进程是一个抽象实体,当它执行某个任务时,将要分配和释放各种资源。 行为的规则称为程序,程序在处理机上执行时的活动称为进程。 一个进...转载 2018-06-13 09:30:51 · 615 阅读 · 0 评论 -
操作系统特性和功能
1. 操作系统的四个特性并发:同一段时间内多个程序执行(注意区别并行和并发,前者是同一时刻的多个事件,后者是同一时间段内的多个事件)共享:系统中的资源可以被内存中多个并发执行的进线程共同使用虚拟:通过时分复用(如分时系统)以及空分复用(如虚拟内存)技术实现把一个物理实体虚拟为多个异步:系统中的进程是以走走停停的方式执行的,且以一种不可预知的速度推进2.操作系统的主要功能处理机管理:处理机分配都是以...转载 2018-06-14 09:48:10 · 2967 阅读 · 0 评论 -
进程同步的基本概念
进程同步的基本概念:临界资源、同步和互斥在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。为了协调进程之间的相互制约关系,引入了进程同步的概念。临界资源虽然多个进程可以共享系统中的各种资源,但其中许多资源一次只能为一个进程所使用,我们把一次仅允许一个进程使用的资源称为临界资源。许多物理设备都属于临界资源,如打印机等。此外,还有许多变量、数据等都可以被若干进程共享,也属于临界...转载 2018-06-14 10:11:40 · 6626 阅读 · 0 评论 -
进程调度算法
进程调度算法1. 先来先服务和短作业(进程)优先调度算法1)先来先服务调度算法:先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。FCFS算法比较有利于长作业(进程),而不利于短作业(进程)。由此可知,本算法适合于CPU繁忙型作业,而不利于I/O繁忙型的作业(进程)。 2)短作业(进程)优先调度算法:短作业(进程)优先调度算法(SJ/PF)是指对短作业...转载 2018-06-14 10:28:34 · 260 阅读 · 0 评论 -
虚拟内存
如果存在一个程序,所需内存空间超过了计算机可以提供的实际内存,那么由于该程序无法装入内存所以也就无法运行。单纯的增加物理内存只能解决一部分问题,但是仍然会出现无法装入单个或者无法同时装入多个程序的问题。但是可以从逻辑的角度扩充内存容量,即可解决上述两种问题。基于局部性原理,在程序装入时,可以将程序的一部分装入内存,而将其余部分留在外存,就可以启动程序执行。在程序执行过程中,当所访问的信息不在内存时...转载 2018-06-14 10:38:32 · 133 阅读 · 0 评论 -
三种外存分配方式的区别
文件分配方式分为三种:连续分配、链接分配、索引分配。其中链接分配又分为隐式链接分配和显式链接分配;索引分配又分为单级索引分配、两级(多级)索引分配,混合索引分配。这里要说的是显式链接分配和索引分配(指单级)的区别。链接分配的特点是已知一个物理块位置寻找下一个物理块位置必须通过指针进行,而且必须顺序寻找。比如我们当前位于3号物理块要去4号物理块,必须根据3号物理块中4号物理块的指针(地址)寻找,而且...转载 2018-06-14 15:06:56 · 4841 阅读 · 0 评论 -
外存分配的几种方式及优劣比较
外存,指的是除了cpu缓存和内存以外的存储器,硬盘、光盘、U盘都可以被称为外存。所有的数据,也都存在这里面,故他的分配方式变得极其重要,这直接影响到了计算机的运行速度。 外存分配方式主要有这几种:连续分配,链式分配,索引分配。 (1) 连续分配 原理:创建文件时,分配一组连续的块;FAT(文件分配表)中每个文件只要一项,说明起始块和文件长度。对于顺序文件有利。 优点:1.简便。适...转载 2018-06-14 15:28:55 · 4669 阅读 · 0 评论 -
内存保护
内存分配前,需要保护操作系统不受用户进程的影响,同时保护用户进程不受其他用户进程的影响。通过釆用重定位寄存器和界地址寄存器来实现这种保护。重定位寄存器含最小的物理地址值,界地址寄存器含逻辑地址值。每个逻辑地址值必须小于界地址寄存器;内存管理机构动态地将逻辑地址与界地址寄存器进行比较,如果未发生地址越界,则加上重定位寄存器的值后映射成物理地址,再送交内存单元。每一个逻辑地址都需要与这两个寄存器进行核...转载 2018-06-15 09:40:37 · 7313 阅读 · 0 评论 -
内存覆盖和内存交换
覆盖和交换技术是在多道程序环境下用来扩充内存的两种方法。覆盖技术主要用在早期的操作系统中,而交换技术则在现代操作系统中仍具有较强的生命力。1、内存覆盖(Overlay)在早期的计算机系统中,主存容量很小。虽然主存中仅存放一道用户程序,但是存储空间放不下用户进程的现象也经常发生。这一矛盾可以用覆盖技术来解决。覆盖的基本思想是:由于程序运行时并非任何时候都要访问程序及数据的各个部分(尤其是大程序), ...转载 2018-06-15 09:52:36 · 1715 阅读 · 0 评论 -
程序装入和链接
程序装入和链接创建进程首先要将程序和数据装入内存。将用户源程序变为可在内存中执行的程序,通常需要以下几个步骤:编译:由编译程序将用户源代码编译成若干个目标模块。链接:由链接程序将编译后形成的一组目标模块,以及所需库函数链接在一起,形成一个完整的装入模块。装入:由装入程序将装入模块装入内存运行。 程序的链接有以下三种方式:静态链接:在程序运行之前,先将各目标模块及它们所需的库函数链接成一个完整的可...转载 2018-06-15 09:56:15 · 5545 阅读 · 0 评论