b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

常见的操作系统面试问题(2)

电脑杂谈  发布时间:2020-06-19 13:13:31  来源:网络整理

第二,先进先出页面替换算法(FIFO)及其改进

此算法的思想与队列相同. 该算法始终删除进入内存的第一页,即选择保留在内存中时间最长的页面以将其删除. 实现: 进程已转移到内存中的页面按顺序链接到队列中,并且始终将指针设置为指向最早的页面. 缺点: 对于经常访问的页面,例如包含全局变量,常用函数,例程等的页面,无法保证不会被淘汰.

三种,最近最少使用的页面替换算法LRU(最近最少使用)

将页面加载到内存后,根据页面的使用情况来做出决定. LRU替换算法会选择最近一段时间未使用的页面进行淘汰.

1. 为存储器中的每个页面配置一个移位寄存器. (P165)定时信号每隔一段时间会将寄存器右移一位. 对应于最小值的寄存器的页面是最长的未使用页面.

2. 使用特殊的堆栈保存当前使用的每个页面的页码. 每当进程访问页面时,该页面的页码就会从堆栈中删除并推到堆栈顶部. 因此,堆栈的顶部始终是最近访问的页码,而堆栈的底部始终是最近未访问的页码.

链接: 分页内存管理(将虚拟内存空间和物理内存空间划分为相同大小的页面等)

链接: 分段内存管理

所谓的中断是指在计算机执行程序期间,由于某些特殊因素,CPU暂停了程序的执行并转而执行处理该事件的程序. 等待这些特殊事项处理后,再返回执行上一个程序. 中断通常分为三类:

与中断紧密相关的概念是中断处理程序. 发生中断时,系统需要处理中断. 这些中断的处理由操作系统内核中的特定功能执行. 这些处理中断的特定功能就是我们所说的中断处理程序.

与中断密切相关的另一个概念是中断优先级. 中断的优先级表示处理中断时处理器可以接受的中断级别. 中断的优先级还表示需要紧急处理该中断. 每个中断都有相应的优先级. 当处理器正在处理中断时,处理器只能接受和处理优先级高于该中断的中断. 优先级低于当前正在处理的中断的中断将被忽略.

典型的中断优先级如下:

在讨论系统调用之前,让我们先谈谈系统上的两个流程执行级别: 用户级别和核心级别,也称为用户模式和系统模式(用户模式和内核模式).

用户空间是用户进程所在的存储区. 相反,系统空间是操作系统占用的内存区域. 用户进程和系统进程的所有数据都在内存中. 用户模式下的程序只能访问用户空间,而内核模式下的程序只能访问用户空间和内核空间.

从用户模式切换到内核模式的方法如下:

用户模式和核心模式(内核模式)有什么区别?

权限不同.

当有多个线程时,通常需要同步(注意: 同步不是同时进行的)这些线程以访问相同的数据或资源. 例如,假设有一个程序,其中一个线程用于将文件读入内存,而另一个线程用于计算文件中的字符数. 当然,在将整个文件传输到内存之前计算其计数是没有意义的. 但是,由于每个操作都有其自己的线程,因此操作系统将这两个线程视为彼此不相关的单独任务,当整个文件未加载到内存中时,这可能会计算单词数. 要解决此问题,必须使两个线程同步工作.

所谓的同步是指不同进程之间的许多程序片段,它们的操作必须严格按照指定的特定顺序执行,这取决于要完成的特定任务. 如果按照访问资源的方式定义同步,则意味着在相互排斥的基础上(大多数情况下),访问者可以通过其他机制有序访问资源. 在大多数情况下,同步已实现互斥,尤其是对于所有书面资源必须互斥. 在少数情况下,可以允许多个访问者同时访问资源.

所谓的互斥是指分散在不同进程之间的许多程序片段. 当一个进程运行其中一个程序片段时,其他进程将无法运行它们中的任何一个操作系统试题,并且只能等到该进程运行完该程序片段之后才能运行它. 如果根据对资源的访问进行定义,则互斥资源仅允许一个访问者同时访问它,这是唯一且排他的. 但是互斥不能限制访问者访问资源的顺序,即访问顺序混乱.

操作系统试题_会计电算化实务操作试题_钳工操作试题

线程之间的同步方法可以大致分为两类: 用户模式和内核模式. 顾名思义,内核模式是指使用系统内核对象的统一性进行同步. 使用它时,您需要在内核模式和用户模式之间切换,用户模式不需要切换到内核模式,只需完成用户模式下的操作即可.

用户模式下的方法是: 原子操作(例如单个全局变量),关键部分.

内核模式下的方法是: 事件,信号量和互斥体.

1. 关键部分: 通过多个线程的序列化访问公共资源或一段代码,这快速且适合控制数据访问.

2. 互斥: 旨在协调对共享资源的单独访问.

3. 信号量: 旨在控制用户数量有限的资源.

4. 事件: 用于通知线程发生了一些事件,从而开始了后续任务的开始.

以下两个概念与内存/虚拟内存有关:

1)居民集

2)脱粒

参考链接:

在内存管理中,内部碎片是指已分配的内存空间大于请求所需的内存空间.

外部碎片是指尚未分配的可用内存空间块,但是它太小而无法分配给新的空间申请过程.

固定分区中有内部片段,可变分区中有外部片段;

页面型虚拟存储系统具有内部碎片;分段虚拟存储系统具有外部碎片

为了有效地使用内存并减少内存碎片,必须对内存进行分页. 内存以页为单位使用. 最后一页通常不完整,因此形成内部碎片.

为了共享段,在切入和切出段时会形成外部片段. 例如,换出5K段后,一个4k段进入并放置在原始5k位置,因此形成了1k个外部片段.

当有多个线程时,通常需要同步这些线程以访问相同的数据或资源. 例如,假设有一个程序,其中一个线程用于将文件读入内存,而另一个线程用于计算文件中的字符数. 当然,在将整个文件传输到内存之前计算其计数是没有意义的. 但是,由于每个操作都有其自己的线程,因此操作系统将这两个线程视为彼此不相关的单独任务,当整个文件未加载到内存中时,这可能会计算单词数. 要解决此问题,必须使两个线程同步工作.

所谓的同步是指多个程序片段在不同进程之间的移动,它们的操作必须严格按照指定的特定顺序执行,这取决于要完成的特定任务. 如果按照访问资源的方式定义同步,则意味着在相互排斥的基础上(大多数情况下),访问者可以通过其他机制有序访问资源. 在大多数情况下,同步已实现互斥,尤其是对于所有书面资源必须互斥. 在少数情况下,可以允许多个访问者同时访问资源.

所谓的互斥是指分散在不同进程之间的许多程序片段. 当一个进程运行其中一个程序片段时,其他进程将无法运行它们中的任何一个,并且只能等到该进程运行完该程序片段之后才能运行它. 如果根据对资源的访问进行定义,则互斥资源仅允许一个访问者同时访问它,这是唯一且排他的. 但是互斥不能限制访问者访问资源的顺序,即访问顺序混乱.

如果多线程程序的结果是可预测的,并且与单线程程序的结果相同,则说明为“线程安全”.

同步是一种阻止模式;同步是按顺序执行的,下一个同步是在执行之后执行的,需要等待并协调操作. 异步是一种非阻塞模式,无需等待;异步是彼此独立的,在等待事件的过程中,继续做自己的事情,不需要等待此事件完成就可以工作. 线程是异步实现的一种方式.

IO多路复用意味着一旦内核发现该进程指定的一个或多个IO条件已准备好读取,它将通知该进程. IO多路复用适用于以下场合:

如果有多个线程与您的代码在同一进程中运行,并且这些线程可能同时运行此代码. 如果每次运行的结果与单线程运行的结果相同操作系统试题,并且其他变量的值也与预期相同,则是线程安全的. 换句话说: 类或程序提供的接口是线程的原子操作,或者在多个线程之间切换不会导致接口的执行结果模棱两可,这意味着我们无需考虑同步问题.

线程安全性问题是由全局变量和静态变量引起的.

如果每个线程只对全局变量和静态变量具有读操作,而没有写操作,通常来说,此全局变量是线程安全的;如果多个线程同时执行写操作,通常需要考虑线程同步,否则可能会影响线程安全.

参考链接

一个进程中的所有线程共享该进程的地址空间,但是它们具有自己的独立(/专用)堆栈. Windows线程的默认堆栈大小为1M. 堆分配与堆栈不同. 通常,进程具有C运行时堆. 该堆由进程中的所有线程共享. Windows进程还具有所谓的进程默认堆. 您还可以创建自己的堆.

全局堆是所有未分配的空间,而本地堆是用户分配的空间. 操作系统初始化进程时分配堆. 堆栈程的开头初始化,并且每个线程的堆栈彼此独立. 切换线程(即切换SS / ESP寄存器)时,操作系统将自动切换堆栈. 堆栈空间不需要使用高级语言进行显式分配和取消分配.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-250936-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...