操作系统
操作系统
jinyangjie0
学如逆水行舟,不进则退
展开
-
操作系统基础(十三)页面置换算法
地址映射过程中,若在页面中发现所要访问的页面不在内存中,则发生缺页中断 。缺页中断 就是要访问的页不在主存,需要操作系统将其调入主存后再进行访问。 在这个时候,被内存映射的文件实际上成了一个分页交换文件。当发生缺页中断时,如果当前内存中并没有空闲的页面,操作系统就必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。用来选择淘汰哪一页的规则叫做页面置换算法,我们可以把页面置换算法看成是淘汰页面的规则。OPT 页面置换算法(最佳页面置换算法) :最佳(Optimal, OPT)置换算法原创 2022-02-09 20:36:35 · 486 阅读 · 0 评论 -
操作系统基础(十二)虚拟内存的技术实现
一、虚拟内存的特征虚拟内存有以下三个主要特征:多次性:无需再作业运行时一次性全部装入内存,而是允许被多次调入内存。对换性:在作业运行时无需一直常驻内存,而是允许在作业运行过程中,将作业换入、换出虚拟性:从逻辑上扩充了内存的容量,使用户看到的内存容量,远大于实际容量。二、虚拟内存的条件实现虚拟内存,需要以下3个条件:一定容量的内存和外存:在载入程序的时候,只需要将程序的一部分装入内存,而将其他部分留在外存,然后程序就可以执行了;缺页中断:如果需执行的指令或访问的数据尚未在内存(称为缺页或缺段原创 2022-02-09 20:29:29 · 1834 阅读 · 1 评论 -
操作系统基础(十一)局部性原理
什么是 局部性 ?这是一个常用的计算机术语,是指处理器在访问某些数据时短时间内存在重复访问,某些数据或者位置访问的概率极大,大多数时间只访问局部的数据。 基于局部性原理,计算机处理器在设计时做了各种优化,比如现代CPU的多级Cache、分支预测…… 有良好局部性的程序比局部性差的程序运行得更快。虽然局部性一词源于计算机设计,但在当今分布式系统、互联网技术里也不乏局部性,比如像用redis这种memcache来减轻后端的压力,CDN做素材分发减少带宽占用率…… 局部性原理表现在以下两个方面:时原创 2022-02-08 16:55:56 · 2774 阅读 · 0 评论 -
操作系统基础(十)物理地址和虚拟地址
物理地址 指的是真实物理内存中地址,更具体一点就是内存地址寄存器中的地址。物理地址是内存单元真正的地址。 我们32位的系统的地址空间就是我们的232字节(4GB),而64位的地址空间大小就是264个字节。虚拟地址 现代处理器增加一个中间层,利用一种间接的地址访问方法访问物理内存。按照这种方法,程序中访问的内存地址不再是实际的物理内存地址,而是一个虚拟地址(Virtual Addressing),然后由操作系统将这个虚拟地址映射到适当的物理内存地址上。这样,只要操作系统处理好虚拟地址到物理内存地原创 2022-02-08 16:34:37 · 5805 阅读 · 0 评论 -
操作系统基础(九)分页和分段的异同点
一、分页存储 将程序的逻辑地址空间划分为固定大小的页(page),而物理内存划分为同样大小的页框(page frame)。程序加载时,可将任意一页放人内存中任意一个页框,这些页框不必连续,从而实现了离散分配。二、分段存储 在分段存储管理中,将程序的地址空间划分为若干个段(segment),这样每个进程有一个二维的地址空间。每个段分配一个连续的分区,而进程中的各个段可以不连续地存放在内存的不同分区中。程序加载时,操作系统为所有段分配其所需内存,这些段不必连续。三、分页和分段的相同点分页机制和原创 2022-02-07 19:02:20 · 8264 阅读 · 0 评论 -
操作系统基础(八)快表和多级页表
一、快表 为了解决虚拟地址到物理地址的转换速度,操作系统在 页表方案 基础之上引入了 快表 来加速虚拟地址到物理地址的转换。我们可以把快表理解为一种特殊的高速缓冲存储器(Cache),其中的内容是页表的一部分或者全部内容。作为页表的 Cache,它的作用与页表相似,但是提高了访问速率。由于采用页表做地址转换,读写内存数据时 CPU 要访问两次主存。有了快表,有时只要访问一次高速缓冲存储器,一次主存,这样可加速查找并提高指令执行速度。 使用快表之后的地址转换流程是这样的:根据虚拟地址中的页号查快表原创 2022-02-07 18:39:01 · 4285 阅读 · 0 评论 -
操作系统基础(七)常见的内存管理机制
一、什么是内存管理 操作系统的内存管理主要负责内存的分配与回收(malloc 函数:申请内存,free 函数:释放内存)、虚地址、地址转换(将逻辑地址转换成相应的物理地址)、内存扩充、内存共享和保护等功能。二、内存管理机制 简单分为连续分配管理方式和非连续分配管理方式这两种。连续分配管理方式是指为一个用户程序分配一个连续的内存空间,常见的如 块式管理 。同样地,非连续分配管理方式允许一个程序使用的内存分布在离散或者说不相邻的内存中,常见的如 页式管理 、 段式管理 和 段页式管理机制。块式管理原创 2022-02-06 20:39:18 · 883 阅读 · 0 评论 -
操作系统基础(六)死锁的产生及解除
一、什么是死锁死锁是指多个进程竞争有限数量的资源,并且互相等待其他进程占有的资源才能运行,导致进程循环等待再也无法改变状态。二、产生死锁的四个条件如果系统中以下四个条件同时成立,那么就能引起死锁:互斥:资源必须处于非共享模式,即一次只有一个进程可以使用。如果另一进程申请该资源,那么必须等待直到该资源被释放为止。占有并等待:一个进程至少应该占有一个资源,并等待另一资源,而该资源被其他进程所占有。非抢占:资源不能被抢占。只能在持有资源的进程完成任务后,该资源才会被释放。循环等待:有一组等待进程原创 2022-02-06 16:31:26 · 1059 阅读 · 1 评论 -
操作系统基础(五)进程的调度算法
1、先到先服务(FCFS)调度算法 从就绪队列中选择一个最先进入该队列的进程为之分配资源,使它立即执行并一直执行到完成或发生某事件而被阻塞放弃占用 CPU 时再重新调度。 FCFS调度算法属于不可剥夺算法。从表面上看,它对所有作业都是公平的,但若一个长作业先到达系统,就会使后面许多短作业等待很长时间,因此它不能作为分时系统和实时系统的主要调度策略。但它常被结合在其他调度策略中使用。例如,在使用优先级作为调度策略的系统中,往往对多个具有相同优先级的进程按FCFS原则处理。2、时间片轮转调度法 时原创 2022-02-05 21:53:46 · 605 阅读 · 0 评论 -
操作系统基础(四)线程同步方式
一、互斥和同步互斥,对于共享的系统资源,在各个线程访问时的排它性。任何时刻最多只允许一个线程去使用,其他要使用的线程必须等待,直到占用资源者释放该资源。同步,协同步调,按预定的先后次序进行。同步也满足互斥的条件,并且多了执行顺序的要求。临界区(Critical Section)、互斥对象(Mutex):主要用于互斥控制;都具有拥有权的控制方法,只有拥有该对象的线程才能执行任务,所以拥有,执行完任务后一定要释放该对象。信号量(Semaphore)、事件对象(Event):事件对象是以通知的方式进行控制原创 2022-02-05 09:59:11 · 1460 阅读 · 1 评论 -
操作系统基础(三)进程间通信
一、进程间通信的概念 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)二、进程间通信的7种方式管道/匿名管道(Pipes) :用于具有亲缘关系的父子进程间或者兄弟进程之间的通信。有名管道(Names Pipes) : 匿名管道由于没有名字,只原创 2022-02-04 15:06:23 · 737 阅读 · 0 评论 -
操作系统基础(二)进程与线程的区别、进程状态和线程状态
一、进程与线程的区别进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是,同类的多个线程共享进程的堆和方法区资源。进程是资源分配的最小单位,线程是CPU调度的最小单位。二、进程状态进程大致分为 5 种状态创建状态(new) :进程正在被创建,尚未到就绪状态。就绪状态(ready) :进程已处于准备运行状态,即进程获得原创 2022-02-04 14:55:14 · 2154 阅读 · 0 评论 -
操作系统基础(一)认识操作系统和系统调用
一、操作系统操作系统(operating system,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统存在屏蔽了硬件层的复杂性。 操作系统就像是硬件使用的负责人,统筹着各种相关事项。操作系统也提供一个让用户与系统交互的操作界面。二、系统调用介绍系统调用之前,我们先来了解一下用户态和系统态。根据进程访问资源的特点,我们可以把进程在系统上的运行分为原创 2022-02-03 19:43:17 · 1023 阅读 · 0 评论