中级软件设计师知识点整理:操作系统

  1. 采用中断方式和DMA方式控制技术,cpu和外设可以并行工作:程序查询方式是一种程序直接控制方式,这是主机与外设间进行信息交换的最简单的方式,输入和输出完全是通过CPU执行程序来完成的。中断方式:CPU暂时中止现行程序的执行,转去执行为某个随机事态服务的中断处理程序.处理完毕后自动恢复原程序的执行,DMA方式:Direct Memory Access,也称为成组数据传送方式,有时也称为直接内存操作

  2. a代表应用软件,b代表系统软件,c代表操作系统
    在这里插入图片描述

  3. 文件的多级索引结构,若磁盘块的大小为1K字节,每个块号占3字节,那么采用二级索引时的文件最大长度为( )K字节。

在这里插入图片描述
4. 系统中有x个并发进程竞争资源R,每个进程都需要y个R,保证系统不会发生死锁的话,至少需要:应该是每个进程所需资源减一个资源,然后系统还留着一个资源,就不会发生死锁:x(y-1)+1*

  1. 某计算机系统页面大小为4K ,进程的页面变换表如下所示。若进程的逻辑地址为2D16H。该地址经过变换后,其物理地址应为( )。
    4K就是2的12次数,而2D16是44 ,有16位,所以16-12 高位的四位就是地址为,而页号的2 对应的就是物理块号的4,物理地址也就是 4D16*

  2. LINUX只有一个根目录,用“/”表示

  3. 实时操作系统:他对于来自外部的事件必须在 被控对象规定的时间内做出及时响应并对其进行处理,有软实时和硬实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。

  4. 某字长为32位的计算机的文件管理系统采用位示图(bitmap)记录磁盘的使用情况。若磁盘的容量为300GB,物理块的大小为1MB,那么位示图的大小为( )个字。
    300GB/1MB =3002^10个物理块 而3002^10/32 等于 9600个

I/0请求处理:当用户通过键盘或鼠标进入某种应用系统,最先获得键盘或者鼠标输入信息的是:由图可知,硬件会先通过中断处理程序 主要是在于:cpu在忙着做自己的事,这时候硬件(比如键盘按了一下) 触发了一个电信号,这个信号就会通过中断线 来发给cpu,而cpu则会保存当前正在做的事的情景现场,再去处理这个申请。

在这里插入图片描述
9. 双击一个文件名时,系统通过建立的文件关联来决定使用什么程序打开该文件。

10.DMA响应过程:DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求,当cpu执行完当前总线周期即可释放总线控制权,此时总线裁决逻辑输出总线应答,表示DMA已响应,通过DMA控制器通知I/O接口开始DMA传输

  1. P2是阻塞节点,P1、P3是非阻塞节点,该图可以化简,所以是非死锁的

在这里插入图片描述
12. 进程创建了好几个线程,但该进程中某线程的栈指针是不能被这些线程共享的

  1. 淘汰页面中,未被访问过或者未被修改过的页面代价最小
  2. 嵌入式系统初始化过程主要有三个环节,按照自底向上,从硬件到软件的次序依次是:片级初始化、板级初始化和系统级初始化。

片级初始化
完成嵌入式微处理器的初始化,包括设置嵌入式微处理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。片级初始化把嵌入式微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。这是一个纯硬件的初始化过程。
板级初始化
完成嵌入式微处理器以外的其他硬件设备的初始化。另外,还需设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。这是一个同时包含软硬件两部分在内的初始化过程。
系统初始化
该初始化过程以软件初始化为主,主要进行操作系统的初始化。BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包含加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,如网络系统、文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口。

  1. N个进程 共享两个打印机,那就取值范围是(2-n)~2 初值就是2
  2. 设计操作系统时,不需要考虑的问题是语言编译器的设计实现
  3. S资源只有一个,且S的值为-3 说明有3个进程在等待
  4. 某文件管理系统采用位示图(bitmap)记录磁盘的使用情况。如果系统的字长为32位,磁盘物理块的大小为4MB,物理块依次编号为:0、1、2、…,位示图字依次编号为:0、1、2、…,那么16385号物理块的使用情况在位示图中的第( )个字中描述;如果磁盘的容量为1000GB,那么位示图需要( )个字来表示。

由于物理块是从0开始编号的,所以16385号物理块是第16386块。16386/32=512.0625,所以16385号物理块的使用情况在位示图中的第513个字中描述。
磁盘的容量为1000GB,物理块的大小为4MB,则磁盘共1000×1024/4个物理块,一个字可以表示32个物理块的使用情况,位示图的大小为1000×1024/(32×4)
=8000个字。

  1. 虚拟存储器就是主存和辅存这两级存储器
  2. 中断向量提供的是中断服务器的入口地址
  3. 为了便于实现多级中断嵌套使用 堆栈来保存断点和现场最有效
  4. DMA的话,就可以让cpu只在开始和结束的时候作少量处理,无序干预数据传送过程,让iI/O设备和主机间直接进行数据传输
  5. 设文件索引节点中有8个地址项,每个地址项大小为4字节,其中5个地址项为直接地址索引,2个地址项是一级间接地址索引,1个地址项是二级间接地址索引,磁盘索引块和磁盘数据块大小均为1KB。若要访问文件的逻辑块号分别为5和518,则系统应分别采用( );而且可表示的单个文件最大长度是( )KB

索引文件既可以满足文件动态增长的要求,又可以方便而迅速地实现随机存取。对一些大的文件,当索引表的大小超过一个物理块时,会发生索引表的分配问题。一般采用多级(间接索引)技术,这时在由索引表指出的物理块中存放的不是文件存放处而是存放文件信息的物理块地址。这样,如果一个物理块能存储n个地址,则一级间接索引将使可寻址的文件长度变成n2块,对于更大的文件可以采用二级甚至三级间接索引。
在本题中,题目告诉我们文件索引节点中有8个地址项,其中2个是一级间接地址索引,1个地址项是二级间接地址索引,那么用于直接地址索引的就是5个地址项,因此编号为5的逻辑块(一般编号从0开始,因此编号为5,其实就是第6个逻辑块)需要采用一级间接索引,一个一级间接索引快大小为1KB,因此这个块可以存放1KB/4B=256个索引地址,而两个一级间接索引,可以索引到512个逻辑块,再加上5个直接索引逻辑块,是517个逻辑块,而编号为518的逻辑块,其实是第519个逻辑块,因此需要采用二级间接地址索引。

  1. 权限排名:everyone -> power users -> administrators
  2. 图a中MOVE Data1,Data2是一个4字节的指令,Data1和Data2表示该指令的两个32位操作数。假设MOVE指令存放在2047地址开始的内存单元中,Data1存放在6143地址开始的内存单元中,Data2存放在10239地址开始的内存单元中,那么执行MOVE指令将产生( )次缺页中断,其中:取指令产生( )次缺页中断,取Data1和Data2操作数分别产生( )次缺页中断。

这个题目从其描述来看,非常复杂,但结合图来看,其实非常简单,从图a我们可以看出,MOVE执行属于页面0和1,而Data1属于页面2和3,Data2属于页面4和5,另外,结合图b可以看出,编号为1、2、3、4、5的页面都不在内存中,如果要取这几个页面的数据,必须先将其置换进内存,因此总共是5次缺页中断,其中取指令产生1次缺页中断,取Data1和Data2操作数分别产生2次缺页中断。

在这里插入图片描述
26. I/O接口与主存采用统一编址,即将I/O设备和接口与主存单元一样看待,每个端口占用一个存储单元的地址,就是将主存的一部分划出来作为I/O地址空间
27. 操作系统对保存有大量有用数据的硬盘进行 磁盘清理和碎片整理操作时,不会清除有用数据
28. 某文件系统采用多级索引结构,若磁盘块的大小为512字节,每个块号需占3字节,那么根索
引采用一级索引时的文件最大长度为( )K字节;采用二级索引时的文件最大长度为( )K字节。
一个块号是3字节,所以一个磁盘块可以拿 )(512/3)个块=170个目录项
所以一级索引的话 就是 170
512
二级的话就是 170170521
以此类推
*

中级软件设计师需要具备以下知识点: 1. 编程语言:熟悉主流编程语言,如Java、C++、Python等,掌握其语法和常用库函数的使用。 2. 数据结构与算法:掌握常见的数据结构,如链表、栈、队列、树等,并了解它们的特点和应用场景。熟悉常用的算法,如排序、查找、图算法等,并能够分析算法的时间复杂度和空间复杂度。 3. 操作系统:了解操作系统的基本原理,如进程管理、内存管理、文件系统等。熟悉Linux操作系统的常用命令和Shell脚本编程。 4. 数据库:熟悉关系数据库的设计和操作,在MySQL、Oracle等数据库管理系统能够编写高效的SQL语句进行数据的增删改查。了解NoSQL数据库的基本概念和使用。 5. 网络编程:了解计算机网络的基本原理,熟悉TCP/IP协议栈和常用的网络编程技术,如Socket编程。 6. 设计模式:了解常用的设计模式,如单例模式、工厂模式、观察者模式等,能够根据需求选择合适的设计模式进行软件设计。 7. 软件开发工具:熟练使用常用的开发工具,如Eclipse、IntelliJ IDEA等,能够进行代码的编辑、编译、调试和版本控制。 8. 软件测试:了解软件测试的基本原理和方法,熟悉常用的测试工具和测试框架,能够编写高质量的单元测试和集成测试。 9. 项目管理:了解软件开发项目的基本流程和方法,熟悉常用的项目管理工具和方法论,如Scrum、敏捷开发等。 10. 系统架构和设计:具备系统架构设计的能力,能够根据需求进行系统的模划分和接口设计,并能够进行系统性能优化和扩展设计。 总之,中级软件设计师需要全面掌握软件开发的各个方面,包括编程语言、数据结构与算法、操作系统、数据库、网络编程、设计模式、测试、项目管理等,以及具备系统架构和设计的能力。熟练掌握这些知识点,不仅能够编写高质量的代码,还能够进行系统级的设计和优化,提高软件的性能和可维护性。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值