| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 操作系统的基础知识和面试考点 -> 正文阅读 |
|
[Java知识库]操作系统的基础知识和面试考点 |
一、概述1、含义
二、进程和线程1、进程和线程的含义(1)进程含义????????进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;进程——系统进行资源分配和调度的基本单位。 (2)线程含义????????线程:线程是进程的一个实体,它是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。线程——程序执行的最小单位。 2、进程和线程的联系和区别(1)联系
(2)区别????????线程是进程划分成的更?的运?单位,?个进程在其执?的过程中可以产?多个线程。线程和进程最?的不同在于基本上各进程是独?的,?各线程则不?定,因为同?进程中的线程极有可能会相互影响。线程执?开销?,但不利于资源的管理和保护;?进程正相反。 3、进程间的通信?概有 7 种常?的进程间的通信?式:
4、线程间的通信
5、进程的调度算法
6、进程的状态
? 三、死锁1、产生条件????????死锁是指多个并发进程因争夺系统资源而产生相互等待的现象。四个条件:
2、预防只要这四个条件中至少有一个条件得不到满足,就不可能发生死锁了。由于互斥条件是非共享资源所必须的,不仅不能改变,还应加以保证,所以,主要是破坏产生死锁的其他三个条件。
3、解决
4、银行家算法????????银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。 ????????为了实现银行家算法,在系统中必须设置这样四个数据结构,分别用来描述系统中可利用的资源、所有进程对资源的最大需求、系统中的资源分配,以及所有进程还需要多少资源的情况。 四、内存管理1、内存管理的工作
????????操作系统的内存管理主要负责内存的分配与回收(malloc
函数:申请内存,
free
函数:释
放内存),另外地址转换也就是将逻辑地址转换成相应的物理地址等功能也是操作系统内存管理做的事情。
2、常见的机制
????????简单分为连续分配管理?式
和
?连续分配管理?式
这两种。连续分配管理?式是指为?个?户程序分配?个连续的内存空间,常?的如 块式管理
。同样地,?连续分配管理?式允许?个程序使?的内存分布在离散或者说不相邻的内存中,常?的如?式管理
和
段式管理
。
3、块表和多级页表(1)块表
????????为了解决虚拟地址到物理地址的转换速度,操作系统在 ?表?案
基础之上引?了
快表
来加速虚拟地址到物理地址的转换。我们可以把块表理解为?种特殊的?速缓冲存储器(Cache
),其中的内容是?表的?部分或者全部内容。作为?表的 Cache
,它的作?与?表相似,但是提?了访问速率。由于采??表做地址转换,读写内存数据时 CPU
要访问两次主存。有了快表,有时只要访问?次?速缓冲存储器,?次主存,这样可加速查找并提?指令执?速度。
????????使?快表之后的地址转换流程是这样的:
1.
根据虚拟地址中的?号查快表;
2.
如果该?在快表中,直接从快表中读取相应的物理地址;
3.
如果该?不在快表中,就访问内存中的?表,再从?表中得到物理地址,同时将?表中的该映射
表项添加到快表中;
4.
当快表填满后,?要登记新?时,就按照?定的淘汰策略淘汰掉快表中的?个?。
(2)多级页表
????????引?多级?表的主要?的是为了避免把全部?表?直放在内存中占?过多空间,特别是那些根本就不需要的?表就不需要保留在内存中。多级?表属于时间换空间的典型场景
4、分页机制和分段机制(1)共同点 :
(2)区别 :
5、虚拟内存(1)虚拟内存含义
????????
虚拟内存使得应?程序认为它拥有连续的可?的内存(?个连续完整的地址空间),?实际上,它通常是被分隔成多个物理内存碎?,还有部分暂时存储在外部磁盘存储器上,在需要时进?数据交换。
????????这个在我们平时使?电脑特别是 Windows 系统的时候太常?了。很多时候我们使?点开了很
多占内存的软件,这些软件占?的内存可能已经远远超出了我们电脑本身具有的物理内存。为什么可以这样呢? 正是因为 虚拟内存 的存在,通过 虚拟内存 可以让程序可以拥有超过系统物理内存??的可?内存空间。另外,虚拟内存为每个进程提供了?个?致的、私有的地址空间,它让每个进程产?了?种??在独享主存的错觉(每个进程拥有??连续完整的内存空间)。这样会更加有效地管理内存并减少出错。
(2)局部性原理
????????局部性原理是虚拟内存技术的基础,正是因为程序运?具有局部性原理,才可以只装?部分
程序到内存就开始运?。
????????时间局部性是通过将近来使?的指令和数据保存到?速缓存存储器中,并使??速缓存的层次结构实现。空间局部性通常是使???的?速缓存,并将预取机制集成到?速缓存控制逻辑中实现。虚拟内存技术实际上就是建?了 “
内存?外存
”
的两级存储器的结构,利?局部性原理实现髙速缓存。
(3)虚拟存储器
????????基于局部性原理,在程序装?时,可以将程序的?部分装?内存,?将其他部分留在外存,就可以启动程序执?。由于外存往往?内存?很多,所以我们运?的软件的内存??实际上是可以?计算机系统实际的内存???的。在程序执?过程中,当所访问的信息不在内存时,由操作系统将所需要的部分调?内存,然后继续执?程序。另???,操作系统将内存中暂时不使?的内容换到外存上,从?腾出空间存放将要调?内存的信息。这样,计算机好像为?户提供了?个?实际内存?的多的存储器——
虚拟存储器。
????????实际上,我觉得虚拟内存同样是?种时间换空间的策略,你? CPU
的计算时间,?的调?调出花费的时间,换来了?个虚拟的更?的空间来?持程序的运?。
(4)页面置换算法
????????地址映射过程中,若在??中发现所要访问的??不在内存中,则发?缺?中断 。
????????当发?缺?中断时,如果当前内存中并没有空闲的??,操作系统就必须在内存选择?个??将其移出 内存,以便为即将调?的??让出空间。?来选择淘汰哪??的规则叫做??置换算法,我们可以把??置换算法看成是淘汰??的规则。
???????6、程序的内存结构
? ????????一个程序本质上都是由BSS段、data段、text段三个组成的。可以看到一个可执行程序在存储(没有调入内存)时分为代码段、数据区和未初始化数据区三部分。
??text段和data段在编译时已经分配了空间,而BSS段并不占用可执行文件的大小,它是由链接器来获取内存的。
五、中断1、含义????????所谓的中断就是在计算机执行程序的过程中,由于出现了某些特殊事情,使得CPU暂停对程序的执行,转而去执行处理这一事件的程序。等这些特殊事情处理完之后再回去执行之前的程序。 2、类别中断一般分为三类:
3、中断处理程序和中断优先级?(1)中断处理程序??????与中断紧密相连的一个概念就是中断处理程序了。当中断发生的时候,系统需要去对中断进行处理,对这些中断的处理是由操作系统内核中的特定函数进行的,这些处理中断的特定的函数就是我们所说的中断处理程序了。 (2)中断优先级????????另一个与中断紧密相连的概念就是中断的优先级。中断的优先级说明的是当一个中断正在被处理的时候,处理器能接受的中断的级别。中断的优先级也表明了中断需要被处理的紧急程度。每个中断都有一个对应的优先级,当处理器在处理某一中断的时候,只有比这个中断优先级高的中断可以被处理器接受并且被处理。优先级比这个当前正在被处理的中断优先级要低的中断将会被忽略。 典型的中断优先级如下所示:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 12:55:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |