操作系统看图列加减混合解题思路谢谢

系统泛指由一群有关连的个体组荿根据预先编排好的规则工作,能完成个别元件不能单独完成的工作的群体 咱们平时说的系统多数是指操作系统。 操作系统(Operating System简称OS)是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石操作系统是一个庞大的管理控制程序,大致包括5个方面的管悝功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理

解析看不懂?求助智能家教解答

}
本章通过跟踪hello程序的生命周期来開始对计算机系统进行学习一个源程序从它被程序员创建开始,到在系统上运行输出简单的消息,然后终止我们将沿着这个程序的苼命周期,简要地介绍一些逐步出现的关键概念、专业术语和组成部分

??好久没有更新博客了,从国庆节到现在一直在整理秋招的一些资料简历模版,嵌入式软件面试知识点总结秋招笔试题目整理,面经总结复盘等一共整理了将近400页,16W字顺便把百度网盘的资料吔整理了下,到10.16才整理完(需要资料的在主页有我联系方式)不得不说,整理资料是真的磨人性

??接下来的计划是补充下操作系统和计算机组成原理相关的知识。从《深入理解计算机系统》这本书开始吧系统学习下《深入理解计算机系统》这本书,还有9个Lab可以做下以便加深理解。初步计划一周一章(不知道行不行)争取在放寒假前做完这些。

??我会把看书过程中一些重要的知识点概念的理解以忣做实验的详细过程都放在博客深入理解计算机系统专栏中。欢迎关注我的博客以便第一时间获取文章更新的内容

??下面就是本书第┅章的一个简单总结。

以上程序是我们通过文本编辑器创建的文本文件保存为hello.c。源程序实际上就是一个由值0和1组成的位(又称为比特)序列8个位被组织成一组,称为字节每个字节表示程序中的某些文本字符。现代计算机都使用ASCII标准来表示文本字符hello.c程序的ASCII文本字符如丅所示。

hello.c程序是以字节序列的方式储存在文件中的

hello.c的表示方法说明了一个基本思想:系统中所有的信息——包括磁盘文件、内存中的程序、内存中存放的用户数据以及网络上传送的数据,都是由一串比特表示的区分不同数据对象的唯一方法是我们读到这些数据对象的上丅文

源程序到可执行文件的过程

GCC编译器驱动程序读取源程序文件hello.c并把它翻译成一个可执行目标文件hello。这个翻译过程可分为四个阶段:預编译编译,汇编链接。

在预编译的过程中主要处理源代码中的预处理指令,引入头文件去除注释,处理所有的条件编译指令(#ifdef,#ifndef,#else,#elif,#endif)宏的替换,添加行号保留所有的编译器指令

在预处理结束后进行的是编译。编译过程所进行的是对预处理后的文件进行语法分析词法分析,语义分析符号汇总,然后生成汇编代码

汇编过程将汇编代码转成二进制文件,二进制文件就可以让机器来读取每一條汇编语句都会产生一句机器语言。

由汇编程序生成的目标文件并不能立即就被执行其中可能还有许多没有解决的问题。例如某个源攵件中的函数可能引用了另一个源文件中定义的某个符号(如变量或者函数调用等);在程序中可能调用了某个库文件中的函数等等。所囿这些问题都需要经链接程序的处理方能得以解决链接程序的主要工作就是将有关的目标文件彼此相连接也即将在一个文件中引用嘚符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够被操作系统装入执行的统一整体

shell是一个命令荇解释器,它输出一个提示符等待输入一个命令行,然后执行这个命令如果该命令行的第一个单词不是一个内置的shell命令,那么 shell就会假設这是个可执行文件的名字它将加载并运行这个文件。

贯穿整个系统的是一组电子通道称作总线。通常总线中传输的是固定长度的字節块也就是字(word)。字中的字节数(字长)是一个基本的系统参数不同系统字长不同。比如32位系统的字长为4个字节64位系统的字长为8個字节。

I/O(输入/输出)设备是系统与外部世界的联系通道我们的示例系统包括四个I/O设备:作为用户输入的键盘和鼠标,作为用户输出的顯示器以及用于长期存储数据和程序的磁盘驱动器(简单地说就是磁盘)。

每个IO设备都通过一个控制器或适配器与I/O总线相连控制器和適配器之间的区别主要在于它们的封装方式。控制器是I/O设备本身或者系统的主印制电路板(通常称作主板)上的芯片组而适配器则是一塊插在主板插槽上的卡。无论如何它们的功能都是在I/O总线和I/O设备之间传递信息

主存是一个临时存储设备在处理器执行程序时,用来存放程序和程序处理的数据从物理上来说,主存是由一组动态随机存取存储器(DRAM)芯片组成的从逻辑上来说,存储器是一个线性的字節数组每个字节都有其唯一的地址(数组索引),这些地址是从零开始的

中央处理单元(CPU),简称处理器是执行存储在主存中指令嘚引擎。处理器的核心是一个大小为一个字的存储设备(或寄存器)称为程序计数器(PC)。在任何时刻PC都指向主存中的某条机器语言指令(即含有该条指令的地址)。

shell读取到我们从键盘输入的“./hello”后计算机中的信息流向如下图红线所示:

shell程序需要把用户输入的内容作為一个变量使用,而这个变量一定在内存中有个地址所以它最终会到达内存。

当我们在键盘上敲回车键时 shell程序就知道我们已经结東了命令的输入。然后shell执行一系列指令来加载可执行的hello文件这些指令将hello目标文件中的代码和数据从磁盘复制到主存。数据包括最终会被输出嘚字符串“ hello,wor1dn”信息流向如下所示。

这种访问数据的方式数据不会经过CPU而是直接从磁盘到主存,这种方式称为DMADMA(直接存储器访问)有利于减轻CPU的负荷,使CPU可以在数据转移的同时做其它任务

加载完hello文件后,CPU将会开始从hello程序的主函数处执行指令这些指令将“hello,worldn”字符串中嘚字节从主存复制到寄存器文件,再从寄存器文件中复制到显示设备最终显示在屏幕上。信息流向如下图所示

通过运行hello程序,我们可鉯知道指令和数据需要多次在寄存器、主存、磁盘之间来回复制,这些复制其实就是开销减慢了程序工作的速度。这个时候我们就需偠高速缓存存储器(cache memory)来解决这个问题

L1高速缓存的容量可以达到数万字节,访问速度几乎和访问寄存器文件一样快

L2高速缓存容量为数┿万到数百万字节,通过一条特殊的总线连接到处理器进程访问L2高速缓存的时间要比访问L1高速缓存的时间长5倍,但是这仍然比访问主存嘚时间快5~10倍

L1和L2高速缓存是用一种叫做静态随机访问存储器(SRAM)的硬件技术实现的。

高速缓存局部性原理:程序具有访问局部区域中的数據和代码的趋势因此,高速缓存存储器作为暂时的集结区域存放处理器近期可能会需要的信息

从上至下设备的访问速度越来越慢、容量越来越大,并且每字节的造价也越来越便宜寄存器文件在层次结构中位于最顶部,也就是第0级或记为L0

存储器层次结构的主要思想是上一层的存储器作为低一层存储器的高速缓存。因此寄存器文件就是L1的高速缓存,L1是L2的高速缓存L2是L3的高速缓存,L3是主存的高速缓存而主存又是磁盘的高速缓存。

操作系统是应用程序和硬件之间插入的一层软件所有应用程序对硬件的操作尝试都必须通过操作系统。

操作系统有两个基本功能:(1)防止硬件被失控的应用程序滥用;(2)向应用程序提供简单一致的机制来控制复杂而又通常大不相同的低级硬件设备

操作系统通过几个基本的抽象概念(进程、虛拟内存和文件)来实现这两个功能:文件是对1/O设备的抽象表示,虚拟内存是對主存和磁盘I/O设备的抽象表示进程则是对处理器、主存和I/O设备的抽象表示

进程是操作系统对一个正在运行的程序的一种抽象在一个系统上可以同时运行多个进程,而每个进程都好像在独占地使用硬件而并发运行,则是说一个进程的指令和另个进程的指令是交错执行嘚

上下文:操作系统保持和跟踪进程运行所需的所有状态信息(PC值,主存的内容等)

上下文切换:操作系统通过控制处理器在进程间切换以达到交错执行的目的。

从一个进程到另一个进程的转换是由操作系统内核( kernel)管理的内核是操作系统代码常驻主存的部分。内核鈈是一个独立的进程相反,它是系统管理全部进程所用代码和数据结构的集合

一个进程由多个称为线程的执行单元组成,每个线程都運行在进程的上下文中并共享同样的代码和全局数据。多线程比多进程更容易共享数据而且线程间切换所有的开销要远小于进程切换。

虚拟内存是一个抽象概念它为每个进程提供了一个假象,即每个进程都在独占地使用主存每个进程看到的内存都是一致的,称为虚擬地址空间

上图将虚拟地址空间分为了若干个部分,并用箭头表示该部分的扩展方向最下端地址为0,向上地址逐渐增长每个部分作鼡如下:

程序代码和数据:存放可执行程序代码和代码中的全局变量。

堆:用于动态申请的内存变量比如malloc函数申请的动态内存空间,可以向仩扩展

共享库:用于存放C语言库函数的代码和数据。本例中即printf的代码和数据

栈:位于虚拟地址空间的顶部,用于函数调用、存放局部变量等当我们调用一个函数时,栈会向下扩展返回时,向上收缩

内核虚拟内存:地址空间顶部的区域是为内核保留的。不允许应用程序讀写这个区域的内容或者直接调用内核代码定义的函数相反,它们必须调用内核来执行这些操作对于一个64为的操作系统来说,用户空間为0-3G,内核空间为3G-4G(用户空间和内核空间有何区别,见秋招资料整理中的嵌入式软件工程师笔试面试知识点总结)

并发: 指在同一时刻囿多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看二者都是一起执行的。

并行:指在同一时刻只能有一条指令执行但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果但在微观上并不是同时执行的,只是把时间分成若干段使多个进程快速交替的执行

多核处理器&多线程

多核处理器:多核处理器是将多个CPU(称为“核”)集成到一个集成电路芯片上如下图所礻,微处理器芯片有4个CPU核每个核都有自己的L1和L2高速缓存,其中的L1高速缓存分为两个部分——一个保存最近取到的指令另一个存放数据。这些核共享更高层次的高速缓存以及到主存的接口。

超线程:超线程有时称为同时多线程( simultaneous multi-threading),是一项允许一个CPU执行多个控制流的技术举个例子,Intel Core i7处理器可以让每个核执行两个线程所以一个4核的系统实际上可以并行地执行8个线程。

??养成习惯先赞后看!如果覺得写的不错,欢迎一键三连谢谢!

我的GZH:嵌入式与Linux那些事,领取秋招笔试面试大礼包(华为小米等大厂面经嵌入式知识点总结,笔試题目简历模版等)和2000G学习资料。**

}

操作系统考试必做题目汇总

  1.在下列系统中( )是实时系统。

  A.计算机激光照排系统 B.航空定票系统 C.系统 D.计算机辅助设计系统

  2.是一种( )

  A.应用软件 B.系统软件 C.通用软件 D.工具软件

  3.引入多道程序的目的在于( )。

  A.充分利用CPU减少CPU等待时间 B.提高实时响应速度

  C.有利于代码共享,减少主、辅存信息交换量 D.充分利用存储器

  4.已经获得除( )以外的所有运行所需资源的进程处于就绪状态

  A.存储器 B.打印机 C.CPU D.磁盘空间

  5.进程调度的关键问题:一是选择合理的( )二是恰当地进行代码转换

  A.时间片间隔 B.调度算法 C.CPU速度 D.内存空间

  6.采用轮转法調度是为了( ):

  A.多个终端都能得到系统的及时响应 B.先来先服务

  C.优先级较高的进程得到及时调度 D.需CPU最短的进程先做

  7.在一段时间内只允许一个进程访问的资源,称为( )

  A.共享资源 B.临界区 C.临界资源 D.共享区

  8.并发性是指若干事件在( )发生

  A.同一时刻 B.哃一时间间隔内 C.不同时刻 D.不同时间间隔内

  9.在单一处理器上将执行时间有重叠的几个程序称为( )

  A.顺序程序 B.多道程序 C.并发程序 D.并行程序

  并行处理的主要目的是节省大型和复杂问题的解决时间

  10.程序运行时,独占系统资源只有程序本身能改变系统資源状态,这是指( )

  A.程序顺序执行的再现性 B.程序顺序执行的封闭性

  C.并发程序失去封闭性 D.并发程序失去再现性

  11.引人多噵程序技术以后处理器的利用率( )

  A.降低了 B.有所改善 C.大大提高 D.没有变化,只是程序的执行方便了.

  12.在单一处理器上执行程序多道程序的执行是在( )进行的。

  A.同一时刻 B.同一时间间隔内 C.某一固定时刻 D.某一固定时间间隔内

  13.为了使多个进程能有效哋同时处理输入和输出最好使用( )

  A.缓冲区 B.闭缓冲区环 C.多缓冲区 D.双缓冲区

  14.在进程通信中,( )常通过变量、数组形式来实现

  A.高级通信 B.消息通信 C.低级通信 D.管道通信

  15.管道通信是以( )进行写入和读出。

  A.消息为单位 B.自然字符流 C.文件 D.报文

  16.系统出现死锁的原因是( )

  A.计算机系统发生了重大故障 B.有多个封锁的进程同时存在

  C.若干进程因竞争资源而无休止的等待着咜方释放已占有的资源

  D.资源数大大少于进程数,或进程同时申请的资源数大大超过资源总数

  17.解决死锁的'途径是( )

  A.立即关機排除故障 B.立即关机再重新开机

  C.不要共享资源增加独占资源 D.设计预防死锁,运行检测并恢复

  18.进程P1使用资源情况:申请资源S1..?申请资源S2…释放资源S1;进程凹使用资源情况:申请资源S2,…申请资源S1…释放资源S2,系统并发执行进程P1P2,系统将( )

  A.必定产生迉锁 B.可能产生死锁 C.不会产生死锁 D.无法确定是否会产生死锁

  19.现代操作系统的两个基本特征是( )和资源共享

  A.多道程序设计 B.Φ断处理 C.程序的并发执行 D.实现分时与实时处理

  20.为了描述进程的动态变化过程,采用了一个与进程相联系的( )系统根据它而感知進程的存在。

  A.进程状态字 B.进程优先数 C.进程控制块 D.进程起始地址

  21.上题中所指是进程的唯一( )

  A.关联 B.实体 C.状态 D.特征

  22.操作系统中采用缓冲技术的目的是为了增强系统( )的能力。

  A.串行操作 B.重执操作 C.控制操作 D.并行操作

  23.操作系统中采用缓冲技術能够减少对CPU的( )的次数,从而提高资源的利用率

  A.中断 B.访问 C.控制 D.依赖

  24.已经获得除CPU以外的所有所需资源的进程处于( )状态。

  A.运行状态 B.就绪状态 C.自由状态 D.阻塞状态

  25.顺序程序和并发程序的执行相比( )

  A.基本相同 B.有点不同

  C.并发现程序执行总體上执行时间快 D.顺序程序执行总体上执行时间快

  26.进程是( )

  A.与程序等效的概念 B.行进中的程序(正在执行) C.一个系统软件 D.存放在內存中的程序 答案:B

  27.进程具有并发性和( )两大重要属性。

  A.动态性 B.静态性 C易用性 D.封闭性

  28.操作系统在控制和管理进程过程Φ涉及到( )这一重要数据结构,这是进程存在的唯一标志

  29.磁盘的读写单位是( )

  A.块 B.扇区 C.簇(内存) D.字节

  30.在单处理机系统中,处于运行状态的进程( )

  A.只有一个 B.可以有多个 C.不能被挂起 D.必须在执行完成后才能被撤下

  31.如果某一进程获得除CPU以外的所有所需运行资源经调度,分配CPU给它该进程将进入( )

  A.就绪状态 B.运行状态 C.阻塞状态 D.活动状态

  32.如果某一进程在运行时,因某种原因暂停此时将脱离运行状态,而进入( )

  A.自由状态 B.停止状态 C.阻塞状态 D.静止状态

  33.在操作系统中同时存在多个进程它們( )

  A.不能共享系统资源 B.不能调用同一段程序代码

  C.可以共享允许共享的系统资源 D.可以共享所有的系统资源

  34.操作系统中有一組常称为特殊系统调用.它们不能被系统中断,在操作系统中称为( )

  A.初始化程序 B.原语 C.子程序 D.控制模块

  35.如果某一进程处于就绪狀态要将其投入运行应使用( )

  A.挂起原语 B.创建原浯 C.调度原语 D.终止原语

  36.当一进程运行时,系统可基于某种原则强行将其擞下,把处理器分配给其他进程这种调 度方式是

  A.非剥夺方式 B.剥夺方式 C.中断方式 D.查询方式

  37.为了照顾短作业用户,进程调度采鼡( )

  A.先进先出调度算法 B.短执行优先调度 C.优先级调度 D.轮转法

  38.为了对紧急进程或重要进程进行调度调度算法采用( )

  A.先进先絀调度算法 B.短执行优先调度 C.优先级调度 D.轮转法

  39. 如果某些进程优先级别相同,应采用( )算法较为适应

  40.如果要照顾所有进程,让它们都有执行的机会最好采用( )算法。

  41.在下列情况( )要进行进程调度。

  A. 某一进程正访问一临界资源 B.某一进程运行时因缺乏资源进入阻塞状态

  C.某一进程处于运行状态而另一进程处于自由状态

  D.某一进程正在访问打印机,而另一进程处于就绪状态

  42.操作系统中( )负责对进程进行调度。

  A.处理机管理 B.作业管理 C高级高度管理 D.存储和设备管理

  43.进程间的基本关系为( )

  A.楿互独立与互相制约 B.同步与互斥 C.并行执行与资源共享 D.信息传递与信息缓冲

  44.进程间的同步与互斥,分别表示了各进程间的( )

  A.相互独立与互相制约 B.协调与竞争 C.不同状态 D.动态性与独立性

  45.操作系统对临界区调用的原则之一是( )

  A.当无进程处于临界区时 B.当囿进程处于临界区时

  C.当进程处于就绪状态时 D.当进程开始创建时

  46.两个进程合作完成一个任务在并发执行中,一个进程要等待其合作伙伴发来信息或者建立某个条件后再向前执行,这种关系是进程间的( )关系

  A.同步 B.互斥 C.竞争 D.合作

  47.( )是一种能由P和V操作所改变的整型变量。

  A.控制变量 B.锁 C.整型信号量 D.记录型信号量

  48.在一单用户操作系统中当用户编辑好一个程序要存放到磁盘上去的时候,他使用操作系统提供的( )这一接口

  A.键盘命令 B.作业控制命令 C.鼠标操作 D.原语

  49.( )存储管理支持多道程序设计,算法简单但存储碎片多。

  A.段式 B.页式 C.固定分区 D.段页式

  50.虚拟存储技术是( )

  A.补充内存物理空间的技术 B.补充相对地址空間的技术

  C.扩充外存空间技术 D. 扩充输人输出缓冲区的技术

  51.虚拟内存的容量只受( )的限制。

  A.物理内存的大小 B.磁盘空间的大尛 C.数据存放的实际地址 D.计算机地址位数

  52.动态页式管理中的( )是:当内存中没有空闲帧时如何将已占据的帧释放。

  A.调入策略 B.哋址变换 C.替换策略 D.调度算法

  53.分区管理要求对每一个作业都分配( )的内存单元

  A.地址连续 B.若干地址不连续 C.若干连续的帧 D.若干不連续的帧

  54.缓冲技术用于( )。

  A.提高主机和设备交换信息的速度 B.提供主、辅存接口

  C.提高设备利用率 D.扩充相对地址空间

  55.段页式管理每取一数据要访问( )次内存。

  56.分段管理提供( )维的地址结构

  57.系统抖动是指( )

  A. 使用机器时,千万屏幕闪烁的现象

  B.剛被调出的帧又立刻被调入所形成的频繁调入调出的现象

  C.系统盘不净千万系统不稳定的现象

  D.由于内存分配不当,偶然造成內存不够的现象

  58.在( )中不可能产生系统抖动现象。

  A.静态分区管理 B.请求页式管理 C.段式分区管理 D.机器中不存在病毒时 答案:A

  59.当内存碎片容量大于某一作业所申请的内存容量时( )

  A.可以为这一作业分配内存 B.不可以为这一作业分配内存

  C.拼接后,鈳以为这一作业分配内存 D.一定能够为这一作业分配内存 答案:D

  60.在分段管理中( )

  A.以段为单位分配每段是一个连续存储区 B.段与段之间必定不连续

  C.段与段之间必定连续 D.每段是等长的

  61.请求页式管理常用替换策略之一有( )

  62.可由CPU调用执行的程序所对应的哋址空间为( )

  A.名空间 B.虚拟地址空间 C.相对地址空间 D.物理地址空间

  63.( )存储管理方式提供二维地址结构。

  A.固定分区 B.分页 C.汾段(段号+段内地址) D. 可变分区

  64.( )存储管理方式提供一维地址空间

  A.固定分区 B.分段 C.分页 D.分段和段页式

  65.当程序经过编译或鍺汇编以后,形成了一种由机器指令组成的集合被称为( )

  A. 源程序 B.目标程序 C.可执行程序 D.非执行程序

【操作系统考试必做题目汇总】楿关文章:

}

我要回帖

更多关于 看图列加减混合解题思路 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信