文章目录
-
- 1. 操作系统是什么
- 2. 进程的特性
- 3. 进程创建过程
- 4. 进程和线程的区别
- 5. 进程和程序的区别
- 6. 为什么引入线程
- 7. 进程的状态转换
- 8. 进程间的通信方式(必会)
- 9. 管程
- 10. 进程调度算法
- 11. 并发、并行的区分
- 12. 多道程序设计
- 13. 临界资源、临界区
- 14. 原语
- 15. 同步机制的准则
- 16. 信号量机制
- 17. 经典同步问题(了解内容)
- 18. 死锁
- 19. 页面置换算法(了解算法思想)
- 20. 抖动、工作集
- 21. 中断和异常
- 22. 内核态、用户态
- 23. 系统调用的过程
- 24. 孤儿、僵尸、饥饿进程
- 25. 调度
- 26. 调度方式
- 27(1).将用户程序变为可在内存中执行的程序的步骤?
- 27(2). 程序装入方式
- 28. 程序链接方式
- 29. 内存分配管理方式
- 30. 内部碎片、外部碎片
- 31. 动态分区分配算法(物理块插入算法)
- 32. 磁盘调度算法
- 33. 存储器管理的功能
- 34. 设备独立性
- 35. 局部性原理
- 36. 虚拟存储器
- 37. 虚拟内存
- 37.基本分页和请求分页内存管理方式?
- 38. 交换技术、覆盖技术
- 39. 文件目录
- 40. 文件逻辑结构有哪些
- 41.I/O控制方式有哪些?
- 41. 假脱机技术
- 42. 引入缓冲的目的是什么
- 43.什么是缓冲区溢出,溢出的危害和原因
- 44. 设备控制表
- 45.简述拼凑/紧凑技术
- 46.什么是缺页中断
- 47.什么是索引节点(Inode)
- 48.什么是设备驱动程序
- 49.什么是 DMA(直接内存访问)
- 50.实时系统和一般操作系统的主要区别是什么
- 51. 链接分配有隐式链接,显示链接,索引链接对吗?并解释一下他们以及FAT表
- 52.文件存储空间管理的方式
- 53.进程前驱图
- 54.抖动
- 55.PCB
- 56.文件系统的基本操作
- 57.硬件上为什么装操作系统?
- 58.数据四种存储结构的简单介绍:
- 59.简述拼接/紧凑技术。
- 60.文件系统管理目录的算法
- 61.并发相关术语
1. 操作系统是什么
概念:操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口,提供的功能有管理计算机硬件、软件和数据资源,控制程序的运行,改善人机界面,提供其他应用程序的支持等,使计算机系统所有资源最大限度的发挥作用。
特征:并发、共享、虚拟、异步
并发:同一时间段内多个不同的进程交替执行,进程调度算法如时间片轮转,优先级调度等算法
虚拟:一个物理实体转换成多个逻辑对应物,通常使用请求调页,请求调段等技术,实现用不到的数据或程序放在硬盘上,需要用到时再调入内存
共享:多个并发的进程可以共同使用同一资源,对于临界资源,使用互斥锁,信号量等机制,保证在同一时刻只有一个进程在访问该临界资源
异步:进程通常都是以我们未知的速度向前推进的,执行的顺序不确定
2. 进程的特性
动态性 并发性 独立性 异步性 结构性
3. 进程创建过程
1)分配进程标识号,申请空白PCB
2)为进程分配资源(程序、数据、内存空间)(分配失败则转为阻塞状态而非失败)
3)初始化PCB(标志信息、处理机状态信息、处理控制信息、设置优先级)。 4)如果就绪队列可以接纳新进程,则接收到就绪队列中。
4. 进程和线程的区别
进程是拥有资源的基本单位,线程是独立调度的基本单位,线程不拥有系统资源(除了一些少量的资源,比如栈、程序计数器等),进程内的线程共享进程所拥有的资源;
并发性方面,在引入线程的操作系统中,不仅进程之间可以并发执行,而且同一个进程内的多个线程之间也可以并发执行,能提高系统的吞吐量,系统的并发性也更好;
在系统开销方面,创建和撤销进程,系统要为之分配或者回收资源,所以创建和撤销进程的系统开销远比线程的要多。
进程之间不会相互影响,而一个线程挂掉可能导致整个进程挂掉。
5. 进程和程序的区别
进程是动态的,程序是静止的。进程是程序的运行过程,程序是有序代码的集合。
进程是暂时的,程序是永久的。进程是一个状态变化的过程,程序可以长久保存。 进程和程序的组成不同:进程包括程序,数据和进程控制块。
进程和程序是密切相关的。通过多次执行,一个程序可以对应多个进程;通过调度关系,一个进程可以包括多个程序。
进程可以创建其他进程,但是程序不能形成新的程序。
6. 为什么引入线程
虽然进程可以提高CPU的利用率,但是进程之间的切换是非常耗费资源和时间的,为了能更进一步的提高操作系统的并发进,引进了线程。这样,进程是分配资源的基本单位,而线程则是系统调度的基本单位。一个进程内部的线程可以共享该进程的所分配到的资源.线程的创建与撤消,线程之间的切换所占用的资源比进程要少很多。
总的来说引入线程就是为了更进一步提高系统的并发性,提高CPU的利用率。线程是进程的基础,进程包含多个线程,是线程的载体。
7. 进程的状态转换
创建 就绪 运行 阻塞 结束(五态模型)
8. 进程间的通信方式(必会)
共享存储:在通信的进程之间存在一块可以直接访问的共享空间,通过对这片共享空间的读写实现进程之间的信息交换
管道通信:实现父子进程互动需要两个管道
消息传递:进程不必借助任何共享存储区或者数据结构,而是以格式化的消息为单位,将数据封装在消息中,并利用OS提供的一组通信命令原语在进程进行信息传递。
分为
直接通信方式:发送进程直接把消息发送给接收进程的消息缓冲队列
间接通信方式:发送进程把消息发到中间实体,类似于邮件
9. 管程
代表共享资源的数据结构,以及由该共享数据结构进行操作的一组过程所组成的资源管理程序,称为管程。管程的引入是为了解决临界区分散所带来的问题。其特性保证了进程互斥,降低死锁发生的可能性。
10. 进程调度算法
先来先服务调度算法(非抢占,开销小,无饥饿,对短进程不利)
最短作业优先调度算法(非抢占,开销大,会饥饿,对长进程不利)
优先级调度算法(长时间没有被调度的进程可以提高优先级)
时间片轮转调度算法(抢占式,开销小,无饥饿)
最高响应比调度算法(非抢占,开销大,无饥饿)
多级反馈队列调度算法(优先级递减,时间片递增,会饥饿,对IO型进程有利)
11. 并发、并行的区分
并行是指两个或者多个事件在同一时刻发生。
并发是指两个或多个事件在同一时间间隔内发生。
在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可以同时执行
12. 多道程序设计
多道程序设计是指在主存中同时存放多道用户作业,使它们都处于执行的开始点和结束点之间,这些程序共享计算机系统资源。
多道程序设计的主要优点有:
(1) 提高CPU的利用率。在多道程序环境下,多个程序共享计算机资源,当某个程序等待I/O操作时,CPU可以执行其他程序,大大提高了CPU的利用率。
(2) 提高设备的利用率。多个程序共享系统的设备,大大提高系统设备的利用率。
(3) 减少了程序的等待时间,提高了系统的吞吐量。
13. 临界资源、临界区
一次仅允许一个进程使用的资源称为临界资源,访问临界资源的那段代码称为临界区。
14. 原语
处于操作系统的最底层,最接近硬件的部件;
操作一气呵成,不能被打断;
运行时间短,调用频繁。
15. 同步机制的准则
空闲让进
忙则等待
有限等待,能在有限时间内进入临界区
让权等待,不能进入临界区应立即释放处理器
16. 信号量机制
可以利用信号量实现进程同步、进程互斥以及前驱关系
17. 经典同步问题(了解内容)
生产者-消费者问题
读者-写者问题
哲学家进餐问题
吸烟者问题
18. 死锁
定义:两个或两个以上进程由于争夺资源造成的一种互相等待的状态,若无外力作用,他们都无法继续推进下去
原因:系统资源不足;进程推进顺序不当。
造成死锁必要条件:
互斥:在一段时间内某资源只由一个进程占用。
请求和保持:进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。
不可剥夺:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。
循环等待:发生死锁的进程构成一环路
死锁的解决办法:
预防死锁:破坏产生死锁的必要条件中的一个或几个
避免死锁:在系统资源的动态分配过程中,防止系统进入不安全的状态。比如银行家算法(在每次进行资源分配时,它首先检查系统是否有足够的资源满足要求,如果有,则先试行分配,并对分配后的新状态进行安全性检查。如果新状态安全,则正式分配上述资源,否则拒绝分配上述资源。这样保证系统始终处于安全状态,从而避免死锁现象的)。
检测死锁:允许系统运行过程中发生死锁,但可通过系统设置的检测机构,及时检测出死锁的发生,确定与死锁有关的进程和资源。
解除死锁:撤销或者挂起一些进程,以便回收一些资源,再将这些资源分配给处于阻塞状态的进程,使之转为就绪态,以继续运行。
19. 页面置换算法(了解算法思想)
页面置换算法
最佳置换算法:优先淘汰最长时间不会被访问到的页面(要预知未来,无法实现)
先进先出置换算法:优先淘汰最先进入内存的页面(Belady异常)
最近最久未使用置换算法:优先淘汰最近最久未使用的页面(需要硬件支持,算法开销大)
时钟置换算法:循环,淘汰访问位=0的
改进型时钟置换算法:(0,0)(0,1)(0,0)(0,1)
20. 抖动、工作集
频繁的页面调度称为抖动
工作集就是在某段时间内,进程要访问页面的集合
21. 中断和异常


22. 内核态、用户态
内核态:也称为核心态,是操作系统内核运行的状态。在内核态下,CPU 可以执行指令集中的所有指令,包括一些特权指令,如对硬件设备的直接访问、内存管理单元(MMU)的操作等。内核态具有最高的权限,能够访问和控制计算机的所有资源。
用户态:是用户程序运行的状态。在用户态下,CPU只能执行非特权指令,用户程序只能访问自己的地址空间,不能直接访问硬件资源和操作系统内核的关键数据结构等。用户态的权限相对较低,主要用于运行用户的应用程序,以保证系统的稳定性和安全性。
23. 系统调用的过程
系统调用提供了用户程序和操作系统之间的接口,应用程序通过系统调用实现其余 OS 的通信,并取得它的服务。系统调用不仅可供所有的应用程序使用,而且也可供 OS 本身的其它部分,如命令处理程序。
系统调用的处理步骤(三步):
首先,将处理机状态由用户态转为系统态,保护被中断进程的 CPU 环境,将处理机状态字 PSW 、程序计数器 PC、系统调用号、用户栈指针以及通用寄存器内容等压入堆栈;
然后将用户定义的参数传送到指定的地址保存起来。
其次,分析系统调用类型,转入相应的系统调用处理子程序。(通过查找系统调用入口表,找到相应处理子程序的入口地址转而去执行它。)
最后,在系统调用处理子程序执行完后,应恢复被中断或设置新进程的CPU 现场,然后返回被中断进程或新进程,继续往下执行。
24. 孤儿、僵尸、饥饿进程
孤儿进程 :父进程退出,子进程未退出,子进程为孤儿进程
僵尸进程:子进程退出,父进程未推出,子进程必须等到父进程捕获到子进程的退出状态才真正结束
进程饥饿:等待时间给进程推进和响应带来明显影响时成为饥饿进程
饥饿与死锁的区别:饥饿进程一个,死锁进程两个或两个以上饥饿进程可以是就绪状态,死锁进程只能是阻塞状态
25. 调度
高级调度 作业调度
中级调度 内存调度
低级调度 进程调度
这个了解这些名称就好~
26. 调度方式
抢占式:一个进程正在处理机上执行时,若有更为紧迫的进程需要处理机,则立即停止本进程,将处理及分配给这个更为紧迫的进程
非抢占式:虽然有更紧迫的进程进入就绪队列,但仍让本进程继续执行,直到该进程完成或者发生某种事件进入阻塞状态,才将处理机分配给更紧迫的进程
27(1).将用户程序变为可在内存中执行的程序的步骤?
1.编译:由编译程序将用户源代码编译成若干目标模块
2.链接:由链接程序将编译后形成的一组目标模块及所需的库函数链接在一起,形成一个完整的装入模块。
3.装入:由装入程序将装入模块装入内存中运行。
27(2). 程序装入方式
程序装入程序是一种系统软件,主要负责将程序从外部存储设备(如硬盘)加载到计算机内存中,以便计算机能够执行该程序
绝对装入:在编译时就知道程序将要驻留在内存的物理地址
可重定位装入:根据内存当前情况,将装入模块装入到内存的适当位置,地址变换通常在装入时一次完成,之后不再改变,也称静态重定位。
动态运行装入:允许程序运行时在内存中移动位置,把装入模块装入到内存后的所有地址都是相对地址,在程序执行过程中每当访问到相应指令或数据时,才将要访问的程序或数据的相对地址转换为物理地址。动态重定位的实现要依靠硬件地址变换机构。
28. 程序链接方式
程序链接是将多个目标文件(.obj)或库文件组合成一个可执行文件的过程。它主要解决程序中不同模块之间的符号引用问题,使得各个模块能够正确地相互调用和协作,从而形成一个完整的可执行程序
静态链接:在程序运行之前,先把各个目标模块及所需库链接为一个完整的可执行程序,以后不再拆开。
装入时动态链接:将应用程序编译后所得到的一组目标模块在装入内存时采用边装入边链接的链接方式。
运行时动态链接:知道程序运行过程中需要一些模块时,才对这些模块进行链接。
29. 内存分配管理方式
内存分配是指操作系统或程序在运行过程中,为各种数据结构、程序代码以及进程等分配计算机内存空间的过程。其目的是有效地利用有限的内存资源,确保各个程序和数据能够合理地存储和运行。
单一连续分配(静态分配)
固定分区分配(分区大小可以不等,但事先必须确定,运行时不能改变)
动态分区分配(详细算法见动态分区分配算法)
30. 内部碎片、外部碎片
内部碎片:分配出去的存储空间中未被利用的部分
外部碎片:系统中无法利用的小存储块
31. 动态分区分配算法(物理块插入算法)
首次适应算法(最好):空闲分区以地址递增的次序链接,顺序查找满足的分区
循环首次适应算法(最差):与首次适应算法不同的时,它每次查找是在上次查找结束位置继续查找
最佳适应算法(外部碎片):空闲分区以容量递增的次序链接,找最大满足的空闲分区
最坏适应算法:空闲分区以容量递减的次序链接,找最小满足的空闲分区
32. 磁盘调度算法
磁盘调度是操作系统中用于管理磁盘 I/O 请求的一种机制,主要用于提高磁盘访问效率,减少平均寻道时间和数据传输时间,进而提升系统整体性能
1、先来先服务算法(FCFS)First Come First Service
这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情况下,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。
2、最短寻道时间优先算法(SSTF) Shortest Seek Time First
该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,该算法可以得到比较好的吞吐量,但却不能保证平均寻道时间最短。其缺点是对用户的服务请求的响应机会不是均等的,因而导致响应时间的变化幅度很大。在服务请求很多的情况下,对内外边缘磁道的请求将会无限期的被延迟,有些请求的响应时间将不可预期。
3、扫描算法(SCAN)电梯调度
扫描算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。例如,当磁头正在自里向外移动时,扫描算法所选择的下一个访问对象应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问,直到再无更外的磁道需要访问才将磁臂换向,自外向里移动。这时,同样也是每次选择这样的进程来调度,即其要访问的磁道,在当前磁道之内,从而避免了饥饿现象的出现。由于这种算法中磁头移动的规律颇似电梯的运行,故又称为电梯调度算法。此算法基本上克服了最短寻道时间优先算法的服务集中于中间磁道和响应时间变化比较大的缺点,而具有最短寻道时间优先算法的优点即吞吐量较大,平均响应时间较小,但由于是摆动式的扫描方法,两侧磁道被访问的频率仍低于中间磁道。
4、循环扫描算法(CSCAN)
循环扫描算法是对扫描算法的改进。如果对磁道的访问请求是均匀分布的,当磁头到达磁盘的一端,并反向运动时落在磁头之后的访问请求相对较少。这是由于这些磁道刚被处理,而磁盘另一端的请求密度相当高,且这些访问请求等待的时间较长,为了解决这种情况,循环扫描算法规定磁头单向移动。例如,只自里向外移动,当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。
33. 存储器管理的功能
内存的分配和回收
地址变换(将逻辑地址转换为物理地址)
内存扩充:借助虚拟存储技术或其他覆盖技术,从逻辑上扩充内存
存储保护:进入内存的各道作业在自己的存储空间内运行,互不干扰
34. 设备独立性
应用程序独立于具体使用的物理设备。设备独立性又称为数据无关性。它指的是应用程序在使用设备进行I/O时,使用的是逻辑设备,而系统在实际执行时使用的是物理设备,由操作系统负责逻辑设备与物理设备的映射。
原因:用户用逻辑设备名来申请使用某类物理设备,当系统中有多台该类型的设备时,系统可以将其中的一台分配给请求进程,而不必局限于某一台指定的设备,这样可以显著改善资源的利用率
35. 局部性原理
程序执行时出现的一般规律,一段时间内,程序的执行仅限于某个部分,访问的存储空间也仅限于某个部分
时间局部性 某个指令被执行后,不久后可能被再次访问。
空间局部性 某个存储单元被访问后,不久后它附近的也会被访问。
36. 虚拟存储器
基于局部性原理,应用程序在运行之前,仅将那些当前要运行的少数页面或段先装入内存便可运行,其余部分暂时留在盘上。
程序运行时,如果它要访问的页已调入内存,便可继续执行下去;如果程序要访问的页或段尚未调入内存(即缺页),程序应将它们调入内存,以继续执行下去。
这样,就实现了大的用户程序能在较小的内存空间里运行,也可以在内存中同时装入更多的进程使它们并发运行。从用户角度出发,该系统的内存容量比实际内存容量大很多,故成这样的存储器为虚拟存储器。
37. 虚拟内存
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。
虚拟内存的最大容量取决于cpu的寻址范围,实际容量
37.基本分页和请求分页内存管理方式?
基本分页(Basic Paging)和请求分页(Demand Paging)是两种常见的内存管理方式。
1. 基本分页: 基本分页是一种简单的内存管理方式,将物理内存和逻辑内存划分成固定大小的页(page)和帧(frame)。逻辑地址空间也被划分为相同大小的页。当程序需要访问某个逻辑页时,操作系统将逻辑页映射到物理内存中的一个帧,然后将这个帧的起始地址与逻辑页的偏移量结合,生成物理地址,完成数据的读取或写入。
2. 请求分页: 请求分页是一种更为灵活和高效的内存管理方式。在请求分页中,物理内存被划分为一系列固定大小的帧,而逻辑地址空间中的页面(page)只在需要使用时才分配到物理内存中。当程序需要访问一个尚未加载到内存中的页面时,会产生一个页面错误(page fault),操作系统则通过将该页面从磁盘加载到内存来满足请求,并更新页表来反映页面的新位置。
什么是页表和快表,有什么作用?
页表指出逻辑地址中的页号与所占主存块号的对应关系。作用:页式存储管理在用动态重定位方式装入作业时,要利用页表做地址转换工作。快表就是存放在高速缓冲存储器的部分页表。它起页表相同的作用。由于采用页表做地址转换,读写内存数据时CPU要访问两次主存。有了快表,有时只要访问一次高速缓冲存储器,一次主存,这样可加速查找并提高指令执行速度
38. 交换技术、覆盖技术
交换(对换):
交换的基本思想就是把内存中的暂时在等待状态的进程从内存中调到辅存中去。把内存空间腾出来叫换出,再把准备好竞争cpu资源的进程放进内存,这叫换入。它是一种内存扩充技术。
覆盖技术
基本原理:将程序分为若干个功能相对独立的模块,按照程序的执行流程,将那些不会同时执行的模块共享同一块内存空间。也就是说,当一个模块执行完毕后,它所占用的内存空间可以被其他需要的模块覆盖使用
39. 文件目录
单级目录:在整个文件系统中只建立一张目录表,每个文件占一个目录项。 实现了“按名存取”,但查找速度慢,不允许重名,不便于实现文件共享。
二级目录:将文件目录分成主文件目录和用户文件目录,系统为每个用户建立一个单独的文件用户目录。解决了文件重名问题,并可以获得较高的查找速度,但二级目录缺乏灵活性,不能对文件分类。
多级目录:即树形目录结构。便于对文件分类,层次结构清晰,也能够更有效地进行文件的管理和保护;但在查找一个文件时,需要按照路径名逐级访问中间节点增加了磁盘访问次数,影响查询速度。
40. 文件逻辑结构有哪些
一种是无结构的流式文件,是指对文件内信息不再划分单位,它是依次的一串字符流构成的文件;
一种是有结构的记录式文件,是用户把文件内的信息按逻辑上独立的含义划分信息单位,每个单位称为一个逻辑记录(简称记录)。所有记录通常都是描述一个实体集的,有着相同或不同数目的数据项,记录的长度可分为定长和不定长记录两类。
41.I/O控制方式有哪些?
1.程序 I/O 方式 早期的计算机系统中, 没有中断系统,所以CPU和I/O设备进行通信,传输数据时CPU速度远快于I/O设备,于是CPU需要不断测试I/O设备,看其是否完成了传输。

2.中断驱动方式 当某进程要启动某个 I/O 设备工作时,便由 CPU 向相应的设备控制器发出一条 I/O 命令,然后立即返回继续执行原来的任务。仅当输完一个数据时,才需 CPU 花费极短的时间去做些中断处理。

3.DMA方式(直接存储器访问) 通过在I/O设备和内存之间开启一个可以直接传输数据的通路,采用DMA控制器来控制一个数据块的传输,CPU只需在一个数据块传输开始阶段设置好传输所需的控制信息,并在传输结束阶段做进一步处理。

4.I/O通道控制方式 虽然DMA方式比起中断方式来已经显著地减少了CPU的干预,即已由以字(节)为单位的干预减少到以数据块为单位的干预。但CPU每发出一条I/O指令,也只能去读/写一个连续的数据块。而当我们需要一次去读多个数据块且将它们分别传送到不同的内存区域,或者相反时,则需由CPU分别发出多条I/O指令及进行多次中断处理才能完成。
---- 通道控制方式与DMA控制方式类似,也是一种以内存为中心,实现设备与内存直接交换数据的控制方式。
---- 与DMA控制方式相比,通道方式所需要的CPU干预更少,而且可以做到一个通道控制多台设备,从而进一步减轻了CPU负担。
---- 通道本质上是一个简单的处理器,专门负责输入、输出控制,具有执行I/O指令的能力,并通过执行通道I/O程序来控制I/O操作。
---- 通道的指令系统比较简单,一般只有数据传送指令、设备控制指令等。
41. 假脱机技术
所有字符设备都是独占设备并属于慢速设备,因此,当一个进程在某台字符设备上进行数据交换时,往往要等待较长时间,并且在此进程未释放该设备之前,其它进程不能同时访问该设备。另一方面,分配到字符设备的进程,在整个运行期间也并非一直使用设备,利用率较低,从而降低了整个系统的性能。SPOOLING技术正是针对上述问题提出的一种技术。SPOOLING技术的核心思想是使一台独占设备变成多台可并行使用的虚拟设备,对IO操作进行批处理,在联机情况下实现外部设备的同时操作,以联机的方式获得脱机的效果,缓和CPU高速性和IO设备低速性之间的矛盾。
SPOOLING系统主要由输入井和输出井、输入缓冲区和输出缓冲区以及输入进程和输出进程3部分组成。在SPOOLING系统中,输出进程将用户要求的数据从输入设备送到输入井,当需要输入数据时,CPU直接从输入井将数据读入内存;输出进程把用户要输出的数据先从内存送到输出井,等输出设备空闲时再将输出井中的数据输出到设备上。
SPOOLING技术可带来如下好处:
(1)提高了I/O速度
(2)将独占设备改造成共享设备
(3)实现了虚拟设备功能
42. 引入缓冲的目的是什么
(1)缓和外部设备和CPU的速度差异;
(2)减少CPU被中断的次数;
(3)实现CPU和设备、设备和设备之间的并行操作。
43.什么是缓冲区溢出,溢出的危害和原因
定义:一个程序尝试将更多的数据放入一个固定大小的缓冲区,当数据大小超过了缓冲区大小,就会溢出到相邻的内存,覆盖其他空间的数据。
危害:溢出的数据会覆盖原有数据,导致数据丢失;破坏程序的执行流程,导致程序异常终止
原因:输入数据量过大和缺乏输入安全验证或者缓冲区大小计算错误。
44. 设备控制表
整个系统只有一张设备控制表(SDT),它记录已经连接到系统中的所有物理设备的情况,每个物理设备占一个表目。
45.简述拼凑/紧凑技术
动态分区会产生很多外部内存碎片,可以通过紧凑技术来解决,需要动态重定位寄存器的支持
46.什么是缺页中断
缺页中断是指在虚拟存储管理中,进程访问的页面不在内存时,系统产生的中断。
当进程要访问某页面数据或指令,发现其不在内存,就触发缺页中断。系统暂停当前进程,去外存找该页面,找到后在内存找空闲空间,若空间不足则按算法换出部分页面,再把所需页面调入内存,更新页表,最后恢复进程继续执行。
47.什么是索引节点(Inode)
索引节点(Inode)是 Unix 和类 Unix 文件系统中用于存放文件元数据的数据结构。
它包含文件类型、权限、所有者、所属组、时间信息、文件大小及指向文件数据块的指针等内容。
文件系统通过 Inode 编号来标识文件,当访问文件时,系统依据文件名找到对应的 Inode 编号,再通过 Inode 获取文件的元数据和数据块,从而实现对文件的操作。
48.什么是设备驱动程序
设备驱动程序是连接操作系统和硬件设备的软件。
它能初始化设备,让设备准备好工作;
实现操作系统与设备间的数据传输,比如读数据到内存或写数据到设备;
还能接收操作系统的指令并控制设备的各种操作,像打开、关闭设备等,使硬件能在操作系统下正常运行。
49.什么是 DMA(直接内存访问)
DMA(直接内存访问)是让数据能在内存和外部设备间直接传输的技术。
它可在设备要传数据时,向 DMA 控制器发请求,DMA 控制器再接管总线控制权,直接控制数据传输,不用 CPU 频繁参与。传输完后通知 CPU。这样能提升 CPU 效率,实现高速数据传输,常用于硬盘读写、网络数据收发等大量数据快速传输的场景。
50.实时系统和一般操作系统的主要区别是什么
实时系统:能及时响应外部事件请求,在规定时间内处理事件并协调实时任务运行。具有及时性、可靠性、确定性等特点,常用于航空航天、工业控制等关键领域。
分时系统:允许多个用户同时使用计算机,通过划分 CPU时间片轮流为用户程序服务。具有交互性、及时性(相对)、独立性等特点,方便用户进行交互操作和程序调试等。
实时系统和一般操作系统的主要区别如下:
响应时间:实时系统要求对外部事件在极短且确定的时间内做出响应,一般操作系统响应时间相对较长且不固定。
任务调度:实时系统采用抢占式调度,优先保证实时任务的执行;一般操作系统调度方式多样,更注重系统资源的均衡分配。
可靠性:实时系统可靠性要求极高,常采用冗余设计等措施;一般操作系统虽然也强调可靠性,但不如实时系统严格。
51. 链接分配有隐式链接,显示链接,索引链接对吗?并解释一下他们以及FAT表
1.隐式链接:操作系统自动维护文件或资源之间的关联,通常不显式显示链接信息。例如,操作系统通过文件系统索引块自动查找文件位置。文件各物理块通过块内指针连成链表,目录项记起始块地址,能利用零散空间但随机访问慢,指针出错易致数据丢失
2.显示链接:显示链接是指用户或操作系统明确指定文件或资源的关联关系,例如符号链接或软链接。用文件分配表(FAT)集中存指针,目录项记起始块编号,顺序访问快且可靠性较高,但 FAT 占内存且需维护
3.索引链接:索引链接是通过一个索引表来存储文件的物理地址,在磁盘上查找数据时,操作系统通过查找索引表来获取文件的实际存储位置。为文件建索引块存数据块地址,目录项记索引块地址,随机访问高效,文件扩展灵活。
FAT表(文件分配表)是一种典型的索引链接方法,用于管理磁盘空间中的文件存储。FAT表记录了文件每个数据块的位置,文件的各个部分(块)通过表中的指针进行连接,操作系统通过读取FAT表来访问文件数据
52.文件存储空间管理的方式
1. 空闲表法(空闲文件目录)
操作系统为磁盘外存上所有空闲区建立一张空闲表,每个表项对应一个空闲区,空闲表中包含序号、空闲区的第一块号、空闲块的块数等信息。
空闲表法适用于连续文件结构,其分配的方式是,在系统为某个文件分配空闲块时,首先扫描空闲表项,如找到合适的空闲区项,则分配给申请者,并把该项从空闲表中去掉。如果一个空闲区项不能满足申请者的要求,则把空闲表中的另一项满足要求的分区分配给申请者(连续文件结构除外)。如果一个空闲表项所含块数超过申请者要求,则为申请者分配了所要的物理块后,再修改该表项。
2. 空闲链表法(自由链表法)
将所有空闲盘区拉成一条空闲链,根据空闲链所有的基本元素不同,可以把链表分成两种形式:空闲盘块链和空闲盘区链。
空闲盘块链是将磁盘上的所有空闲分区,以盘块为单位拉成一条链,当用户创建文件请求分配存储空间时,系统从链首开始,依次摘下适当数目的空闲盘块分配给用户;当用户删除文件时,系统将回收的盘块依次加入到空闲盘块链的末尾。
空闲盘区链是将磁盘上的所有空闲盘区(每个空闲盘区可包含若干个盘块)拉成一条链。在管理的线性表中,每一个表项对应一个空闲区,增加一项存放指向空闲块的指针,将磁盘上的所有空闲区(可包含若干个空闲块)拉成一条链。每个空闲区上除含有用于指示下一个空闲区的指针外,还有本盘区大小(盘块数)的信息。
3. 位示图法
本方法利用二进制的一位来表示磁盘中一个盘块的使用情况,磁盘上所有的盘块都有与之对应的一个二进制位。当其值为0时,表示对应的盘块空闲,当其值为1时,表示对应的盘块已经分配。
4. 成组链接法
空闲表法和空闲链表由于空闲表太长而不适合大型文件系统的使用。成组链接法是两种方法相结合的一种管理方法,兼备了两种方法的优点而克服了两种方法的缺点。其大致的思想是:把空闲的n个空闲扇区的地址保存在第一个空闲扇区内,其后一个空闲扇区内则保存另一顺序空闲扇区的地址,以此类推,直至所有空闲扇区都予以链接。
53.进程前驱图
进程前驱图是一种有向无环图,用于描述进程之间的执行顺序和前驱关系。以下是其相关介绍
组成元素
节点:代表进程或程序段,用圆圈或矩形表示。
例如,在一个包含多个任务的系统中,每个任务可以是一个节点。
有向边:表示进程之间的前驱关系,即执行顺序。箭头从前驱进程指向后继进程,意味着前驱进程执行完毕后,后继进程才能开始执行。
例如,若进程 A是进程 B 的前驱,那么有一条从 A 指向 B 的有向边。
54.抖动
抖动是操作系统中因内存分配或页面置换算法问题,导致系统频繁进行页面置换,出现 CPU 利用率下降、系统性能恶化、磁盘 I/O 繁忙等不良现象的情况。
55.PCB
进程控制块(PCB)是操作系统用于管理进程的核心数据结构,包含了进程的各种相关信息,主要内容如下:
进程标识符:唯一标识一个进程的 ID,用于区分系统中的不同进程。
进程状态:记录进程当前所处的状态,如就绪、运行、阻塞等。
优先级:表示进程获取 CPU 资源的优先程度,优先级高的进程更易被调度执行。
程序计数器:指示进程当前要执行的下一条指令的地址。
寄存器值:保存进程运行时各个寄存器的内容,以便进程被中断后能恢复执行。
内存指针:指向进程在内存中的代码和数据区域,方便操作系统进行内存管理。
资源分配信息:记录进程已分配到的资源,如打开的文件、占用的 I/O 设备等。
进程通信信息:用于进程间通信的相关信息,如消息队列指针、信号量等。
家族关系:记录进程的父进程和子进程信息,便于进行进程的层次管理。
创建时间:记录进程创建的时间,可用于统计进程的运行时间等。
56.文件系统的基本操作


57.硬件上为什么装操作系统?
在硬件上安装操作系统的原因主要有:
统一管理硬件资源,让其高效协同工作;
为用户提供方便友好的操作界面;
为软件提供运行环境,使其能稳定运行;
提供文件管理、网络、安全管理等系统服务。
58.数据四种存储结构的简单介绍:
顺序存储结构:数据元素在物理位置上相邻,逻辑关系由存储单元邻接关系体现,随机访问快,但插入删除效率低。
链式存储结构:存储单元可不连续,通过指针表示逻辑关系,插入删除方便,不过随机访问慢,有额外指针开销。
索引存储结构:存储数据同时建立索引表,查找效率高,但增加空间开销,维护较复杂。
散列存储结构:根据关键字通过散列函数计算存储地址,查找、插入和删除效率通常较高,但可能有冲突,不适合范围查找。
59.简述拼接/紧凑技术。
拼接 /紧凑技术用于解决内存碎片问题。它通过移动内存中的数据,把分散的空闲块合并成连续的大空闲块,以提高内存利用率。
其优点是能有效利用内存,缺点是移动数据耗时且可能影响系统性能。该技术适用于对内存利用率要求高的系统,如实时操作系统、嵌入式系统等。
60.文件系统管理目录的算法
线性查找算法:从目录表第一个目录项开始逐个比较文件名,简单但效率低,适用于小型目录,时间复杂度为
O(n)
二分查找算法:要求目录表按文件名有序,通过不断缩小查找范围来提高效率,时间复杂度为O(logn),但插入、删除需维护顺序。
B 树和 B + 树算法:是平衡多路查找树,通过节点分裂和合并保持平衡,能高效进行查找、插入和删除操作,适用于大规模文件系统,可减少磁盘 I/O,但实现复杂。
哈希算法:利用哈希函数将文件名映射为哈希值,依此在哈希表中查找,查找速度快,但可能存在哈希冲突,需处理冲突问题。
61.并发相关术语
1.原子操作:一个函数(原语)或动作的指令序列不可分割,要么作为一个整体执行(不可中断),要么都不执行
2.临界资源:一次仅允许一个进程独占使用的不可剥夺的资源
3.临界区:进程访问临界资源的那段程序代码。一次仅允许一个进程在临界区中执行
4.互斥:当一个进程正在临界区中访问临界资源时,其他进程不能进入临界区
5.同步:合作的并发进程需要按先后次序执行,例如:一个进程的执行依赖于合作进程的消息或者信号,当一个进程没有得到来自于合作进程的消息或者信号时需要阻塞等待,直到消息或者信号到达后才被唤醒
6.死锁:多个进程全部阻塞,形成等待资源的循环链
7.饥饿:一个就绪进程被调度程序长期忽视、不被调度执行;一个进程长期得不到资源
计算机就业前景
网络安全行业发展空间大,岗位非常多
网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…

学习资源
如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你
知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。
1、知识库价值
深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。
广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。
实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。
2、 部分核心内容展示
360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。
内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。
1、网络安全意识

2、Linux操作系统

3、WEB架构基础与HTTP协议

4、Web渗透测试

5、渗透测试案例分享

6、渗透测试实战技巧

7、攻防对战实战

8、CTF之MISC实战讲解

3、适合学习的人群
一、基础适配人群
- 零基础转型者:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链;
- 开发/运维人员:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展或者转行就业;
- 应届毕业生:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期;
二、能力提升适配
1、技术爱好者:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者;
2、安全从业者:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力;
3、合规需求者:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员;
因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

8982

被折叠的 条评论
为什么被折叠?



