二、操作系统基本原理


一个操作系统包括:

  • 进程管理
  • 存储管理
  • 文件管理
  • 作业管理
  • 设备管理
  • 微内核操作系统

进程管理:

进程状态

  1. 就绪状态
  2. 运行状态
  3. 等待状态

前趋图

前趋图解决顺序约束关系

进程的同步与互斥

PV操作

  • 临界资源

    在某一个时间点,只允许一个对象操作

  • 临界区

    是一段代码,访问临界资源的代码片段就叫做临界区

  • 信号量

    一种特殊的信号量,专门使用在pv操作中,类似于Java中进制之间通信的管程法

PV操作就是对进程的一种管理

p操作:

执行某一个进程之前先将信号量s-1,若结果为负数则阻塞它,加入等待队列。否则正常执行

v操作:

执行某一个进程之前先将信号量s+1,若结果不为正数,则唤醒它,否则正常执行

PV操作结合前趋图

首先会给出前趋图,然后让你补全线程的pv操作。

死锁问题:

进程之间相互抱锁而等待对方的锁的问题,类似于Java的死锁

死锁产生的四种条件:

  1. 资源互斥(这个资源不共享)
  2. 保持和等待
  3. 不剥夺
  4. 进程之间形成回路

打破四种条件之一即可解除死锁

避免死锁问题的产生:

  1. 有序的资源分配
  2. 银行家算法

存储管理:

分区存储组织:

  • 首次适应法
  • 最佳适应法
  • 最差适应法
  • 循环首次适应法

页式存储组织:

页式存储就是将内存等大小的分成一个个块。然后将用户程序等大小的分成一个个的页,将需要用到页调入内存允许,运行完后调出。不需要用到的页不调入内存。这中间需要用到页表来映射页和内存块之间的联系

优点是:利用率高,碎片小,分配管理简单

缺点是增加了系统的开销,可能发生抖动现象

例题:

页面大小为4k可以计算到页面位数为2的12次方,12次方就是页内地址的位数。逻辑地址是页号+页内地址,物理地址是块号+页内地址。一个十六进制位对应4个二进制位,那么5A29的后三位就是页内地址。

淘汰页号要查找访问位位0的页面

段式存储:

段式存储不需要等大小划分,它是按照程序的函数需要的内存大小来划分内存块,允许各个块有不同大小

优点:多道程序共享内存,各程序修改相互不影响

缺点:内存利用率低,内存碎片浪费大

段页式存储:

快表

页面置换算法:

  • 最优算法OPT

  • 随机算法RAND

  • 先进先出算法FIFO

    产生抖动,淘汰最先进入内存的页面

  • 最近最少使用LRU

    不会产生抖动,淘汰最久没被访问的页面

淘汰算法例题:

首先明确一点,在考试中约定指令虽然跨两个页,但是我们只计报缺页一次。

首先完全执行这个指令,需要访问6个页面,而访问页面需要查表也就是一个页面需要访问内存2次,总共访问12次.

缺页就是内存如果没有调入页面,但是需要访问时就会报一次缺页。指令只报一次,操作数跨两个页面报两次,总共就是5次

文件管理:

索引文件结构:
例题:

首先,题目告诉我们0到4是直接索引那么这里就占了5个地址了,然后5号是一级索引大小为1kb每个地址项大小为4b。那么1kb/4b=256个地址项。加上前面的5个地址,就是261个,也就是说187号物理地址对应的是261的逻辑块号.101显而易见的是二级索引

文件和树形目录结构

绝对路径和相对路径

空闲存储空间的管理

将系统内存在的空闲内存区管理起来,方便之后的读和写的操作

  • 空闲区表示法(空闲文件目录)
  • 空闲链表法
  • 位示图法
  • 成组链接法

设备管理:

数据传输控制方式

  • 程序控制方式
  • 程序中断方式DMA方式

虚设备和SPOOLING

简单来说就是队列的应用,当外设在执行某项任务时,你向外设传递的任务将会进入队列等待执行,提高外设的使用效率

微内核操作系统

将操作系统的各个部分分离开,将最核心的部分做成内核,各个部分不会相互影响。

  • 用户态
  • 内核态

软考中级软件设计师——操作系统相关推荐

  1. 2022下半年软考-中级-软件设计师-过关经验

    目录 1.重要内容 2.考情分析 3.视频笔记 1.重要内容 软考官网:中国计算机技术职业资格网 刷题:软考通app.软考真题app.软考刷题王(微信小程序).希赛网app. zst_2001软考中级 ...

  2. 全国软考中级软件设计师 复习大纲概览

    本专栏记录学习复习软考中级软件设计师的内容,官方网站上有中级设计师的考试大纲和指导用书,官网链接:https://www.ruankao.org.cn 考试的难度总体来讲不是很大,但是设计的知识面非常 ...

  3. 一个非计算机专业的 软考中级 软件设计师考试之路

    今天是2018年7月6日 在半个小时之前我查看了2018 年上半年的软考成绩 通过成功软考中级软件设计师的考试 费用总结 备考资料 150 报名费 140 食宿费 200 总计 490 500 块钱+ ...

  4. 软考中级(软件设计师)——面向对象程序设计(C++Java二选一的题15分-目标3分)

    软考中级(软件设计师)--面向对象程序设计(C++&Java二选一的题15分-目标3分) 目录 软考中级(软件设计师)--面向对象程序设计(C++&Java二选一的题15分-目标3分) ...

  5. 软考中级软件设计师 2009-2022年真题

    ** 整理了2009年到2022年 软考中级软件设计师的题目与参考答案 百度网盘分享 链接:https://pan.baidu.com/s/1f4Hfuw7lzgM4IZa-g1Wepg?pwd=50 ...

  6. 软考中级软件设计师难不难_为什么这么难处理设计师

    软考中级软件设计师难不难 重点 (Top highlight) I have a confession to make. As a young Design 'pioneer' in many tec ...

  7. 软考中级--软件设计师

    软考中级–软件设计师 数据库系统复习总结

  8. 软考中级(软件设计师)——计算机网络(5分)与信息安全(3分)

    软考中级(软件设计师)--计算机网络(5分)与信息安全(3分) 目录 软考中级(软件设计师)--计算机网络(5分)与信息安全(3分) 计算机网络(5分) 开放系统互连参考模型(★★) TCP/IP协议 ...

  9. 软考中级(软件设计师)——数据库系统(上下午各占6-8分)

    软考中级(软件设计师)--数据库系统(上下午各占6-8分) 目录 软考中级(软件设计师)--数据库系统(上下午各占6-8分) 数据库模式(★★) 三级模式 数据库设计过程 ER模型(★★★★★) 关系 ...

最新文章

  1. 一个简单的内核模块实现和使用
  2. 桌面虚拟化XenDesktop常见故障排查宝典
  3. 在ubuntu16.4中安装mysql_【Linux】Ubuntu16.04环境下MySQL的安装与使用
  4. 谁在为网易云音乐2亿用户的即时通讯保驾护航?
  5. 微服务Apache ServiceComb 数据一致性Saga演进介绍
  6. Spring boot mongodb
  7. bert 中文 代码 谷歌_如何用最强模型BERT做NLP迁移学习?
  8. 自然语言处理(2)-信息论基础
  9. html引入css webpack_深入剖析webpack——webpack 基础
  10. 阅读linux内核代码的工具-- Source Insight
  11. python返回对象_函数返回一个对象-python
  12. Hadoop环境搭建学习(1)
  13. 使用Python连接crossbar.io 报错 could not create serializer for “cbor“ (available: [‘json‘])
  14. 【论文阅读】PAIRWISE LINKAGE FOR POINT CLOUD SEGMENTATION-ISPRS-luxiaohu
  15. 在不停业务的情况下重启ES集群中的节点
  16. 科技岗位日趋增长,能成为女性职业选择的新可能吗?
  17. json转换格式错误
  18. 数值分析---Jacobi迭代法
  19. 安卓adb shell模式下创建文件夹出现Permission denied时的解决办法
  20. 数据类型-整型、浮点型、复数

热门文章

  1. STM32的GPIO口能够承受多大电压? 哪些IO口能容忍5V?
  2. static_cast 和 reinterpret_cast区别
  3. 爬取小说章节,并制作成词云进行宣传
  4. Java数据类型在内存中储存方式
  5. 蓝代斯克助力企业决胜现代化IT
  6. 「构建企业级推荐系统系列」嵌入方法在推荐系统中的应用
  7. linux 内存镜像提取命令,内存镜像获取工具推荐
  8. unity局域网socket传输图片tcp
  9. python拍七游戏代码_python实现逢七拍腿小游戏的思路详解
  10. 金融(Finance) 精萃