
操作系统
救救头发
记录个人学习笔记
展开
-
页面置换算法
地址映射过程中,若在页面中发现所要访问的页面不在内存中,则发生缺页中断 。缺页中断就是要访问的页不在主存,需要操作系统将其调入主存后再进行访问。 OPT 页面置换算法(最佳页面置换算法):最佳(Optimal, OPT)置换算法所选择的被淘汰页面将是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。但由于人们目前无法预知进程在内存下的若千页面中哪个是未来最长时间内不再被访问的,因而该算法无法实现。一般作为衡量其他置换算法的方法。 FIFO页面置换算法(先进先出页面置换算.原创 2022-03-02 19:58:21 · 676 阅读 · 0 评论 -
局部性原理
局部性原理是虚拟内存技术的基础,正是因为程序运行具有局部性原理,才可以只装入部分程序到内存就开始运行。 局部性原理表现在以下两个方面: 时间局部性:如果程序中的某条指令一旦执行,不久以后该指令可能再次执行;如果某数据被访问过,不久以后该数据可能再次被访问。产生时间局部性的典型原因,是由于在程序中存在着大量的循环操作。 空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,这是因为指令通常是顺序存放、顺序执行的,数据也一原创 2022-03-02 19:57:50 · 996 阅读 · 0 评论 -
虚拟内存的实现方式
通过虚拟内存可以让程序拥有超过系统物理内存大小的可用内存空间。虚拟内存为每个进程提供了一个一致的、私有的地址空间,它让每个进程产生了一种自己在独享主存的错觉(每个进程拥有一片连续完整的内存空间)。这样会更加有效地管理内存并减少出错。 ...原创 2022-03-02 19:57:14 · 1411 阅读 · 0 评论 -
分页和分段的异同
同: 分页机制和分段机制都是为了提高内存利用率,减少内存碎片。 页和段都是离散存储的,所以两者都是离散分配内存的方式。但是,每个页和段中的内存是连续的。 异: 页的大小是固定的,由操作系统决定;而段的大小不固定,取决于当前运行的程序。 分页为了满足操作系统内存管理的需求,而段是逻辑信息的单位,为了更好的满足用户需要。 ...原创 2022-02-16 16:48:08 · 1350 阅读 · 0 评论 -
内存管理
内存管理主要是做什么: 操作系统的内存管理主要负责内存的分配与回收(malloc 函数:申请内存,free 函数:释放内存),地址转换也就是将逻辑地址转换成相应的物理地址等功能。 内存管理机制: 连续分配管理方式(为一个用户程序分配一个连续的内存空间): 块式管理:将内存分为几个固定大小的块,每个块中只包含一个进程。如果程序运行需要内存的话,操作系统就分配给它一块,如果程序运行只需要很小的空间的话,分配的这块内存很大一部分几乎被浪费了。这些在每个块中未被利用的空间,我们称之为碎片。 非连续分配管理方原创 2022-02-16 16:46:57 · 224 阅读 · 0 评论 -
进程调度算法
为了确定首先执行哪个进程以及最后执行哪个进程以实现最大 CPU 利用率,采用进程调度算法: 1.先到先服务(FCFS)调度算法: 从就绪队列中选择一个最先进入该队列的进程为之分配资源,使它立即执行并一直执行到完成或发生某事件而被阻塞放弃占用 CPU 时再重新调度。 2.短作业优先(SJF)的调度算法: 从就绪队列中选出一个估计运行时间最短的进程为之分配资源,使它立即执行并一直执行到完成或发生某事件而被阻塞放弃占用 CPU 时再重新调度。 3.时间片轮转调度算法: 每个进程被分配一个时间段,称作它的时间原创 2022-02-16 16:46:18 · 286 阅读 · 0 评论 -
线程同步方式
线程同步是两个或多个共享关键资源的线程的并发执行。应该同步线程以避免关键的资源使用冲突。操作系统一般有下面三种线程同步的方式: 互斥量:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。比如 Java 中的 synchronized 关键词和各种 Lock 都是这种机制。 信号量:它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。 事件:通过通知操作的方式来保持多线程同步,还可以方便的实现多原创 2022-02-16 16:44:47 · 119 阅读 · 0 评论 -
进程间的通信方式
原文地址:JavaGuide (gitee.io) 1.匿名管道:用于具有亲缘关系的父子进程间或者兄弟进程之间的通信。 2.有名管道:匿名管道由于没有名字,只能用于亲缘关系的进程间通信。为了克服这个缺点,提出了有名管道。有名管道严格遵循**先进先出(first in first out)**。有名管道以磁盘文件的方式存在,可以实现本机任意两个进程通信。 3.信号:信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。 4.消息队列:消息队列是消息的链表,具有特定的格式,存放在内存中并由消息原创 2022-02-16 16:44:13 · 126 阅读 · 0 评论 -
系统调用
根据进程访问资源的特点,我们可以把进程在系统上的运行分为两个级别: 用户态: 用户态运行的进程可以直接读取用户程序的数据。 系统态:可以简单的理解为系统态运行的进程或程序几乎可以访问计算机的任何资源,不受限制。 我们运行的程序基本都是运行在用户态,但是与系统态级别的资源有关的操作(如文件管理、进程控制、内存管理等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。 这些系统调用按功能大致可分为如下几类: 设备管理。完成设备的请求或释放,以及设备启动等功能。 文件管理。完成文件的原创 2022-02-16 16:42:51 · 95 阅读 · 0 评论 -
什么是操作系统
操作系统是管理计算机硬件与软件资源的程序 操作系统本质上是一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源。举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。 操作系统存在屏蔽了硬件层的复杂性。操作系统就像是硬件使用的负责人,统筹着各种相关事项。 操作系统的内核是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。 ...原创 2022-02-16 16:41:59 · 426 阅读 · 0 评论