当前位置: 首页 > news >正文

计算机四级——操作系统原理常用知识点个人总结(上)

  1. 数据库系统是支撑软件,操作系统是系统软件。
  2. 互斥共享:打印机,磁带机、扫描仪等;同时共享:硬盘。
  3. 批处理操作系统追球系统资源利用率高,作业吞吐率高;但是缺点是无法交互。
  4. 用户模式(目态)通过系统调用、中断切换到特权模式(管态)。管态通过修改程序状态字切换到目态。
  5. 用户可见的寄存器:数据寄存器、地址寄存器、条件码寄存器。
  6. 中断和异常的区别:中断由外部事件引发,异常则是由于正在执行的指令引发。常见的中断有时钟中断、输入输出(I/O)中断、控制台中断、硬件故障中断;异常有程序性中断、访管指令异常。
  7. 一般过程调用在被调用过程执行完后,将返回到调用过程继续执行;但是在采用抢占式调用方式的系统中,被调用过程执行完后,系统将对所有要求运行的进程进行优先级分析。
  8. 系统调用和一半过程调用都允许嵌套调用。
  9. 一般过程调用的调用过程和被调用过程都在相同的状态,系统调用的的调用程序在用户态,被调用程序在系统态。
  10. 引入线程的好处:创建线程时间少、线程切换开销少、线程间通信更加方便、线程可以独立执行,能充分利用和发挥处理器和外围设备的并行工作能力。
  11. 线程是调用的最小单位,进程是资源分配的最小单位。
  12. 线程主要函数意义描述
    pthread_create创建一个线程
    pthread_exit结束调用的线程
    pthread_join等待一个特定的线程的退出
    pthread_yield主动释放cpu来运行另外一个线程
  13. 引起进程调度的原因:正在执行的进程(线程)执行完毕、正在执行的进程(线程)调用阻塞原语将自己阻塞、正在执行的进程因资源不足阻塞或调用唤醒原语激活了某等待进程、进程的时间片用完、进程中的某进程优先级高于正在运行的进程。
  14. 调度算法只有计算密集型(CPU密集型)和I/O密集型。
  15. 感知程度交互关系一个进程对其他进程的影响潜在的问题
    相互不感知一个进程的操作对其他进程的结果无影响互斥、死锁、饥饿
    间接感知通过共享来协作一个进程结果依赖于从其他进程获得的信息互斥、死锁、饥饿
    直接感知通过通信合作一个进程结果依赖于从其他进程获得的信息死锁、饥饿
  16. 同步机制准则:空闲则入、忙则等待、有限等待、让权等待。
  17. 进程状态的三状态和七状态模型以及各状态之间存在的转换关系: 

     七状态模型:
  18. 生产者与消费者之间必须互斥、必须同步;生产者与生产者之间必须互斥;消费者与消费者之间必须互斥。
  19. 管程本身不保证互斥,是因为管程中只能有一个活跃进程这一特性使管程完成互斥。
  20. 管程与P、V信号量同步机制相比较,管程具有的优点:①程序易读性较好;②程序利于修改和维护;③容易保证正确性。
  21. 进程间的通信主要有下面几种方式:①共享内存:在相互通信的进程之间设有一个公共内存区,一组进程向该公共内存区中写,另一组进程读。②消息机制主要有消息缓冲通信:利用内存中的公用消息缓冲区,在内存中开辟若干消息缓冲区,实现进程之间的信息交换;信箱通信:通信双方不必直接建立联系,发送方可以在任何时候发送,接收方可以在任何时候接受。③管道通信:链接两个进程之间的一个打开的共享文件,专用于发送进程源源不断的从一段写,接受进程在需要时从另一端读出。管道通信具有传输数据量大的优点,但是通信速度缓慢。管道通信中的同步和互斥都由操作系统自动进行,对用户透明。
  22. 操作系统一般只提供要共享的内存空间,公共内存中的互斥关系由开发人员负责。

相关文章:

  • 【学姐面试宝典】—— 前端基础篇Ⅰ
  • c++之二叉树
  • 字符串训练赛
  • Android性能优化之【启动优化】
  • Java 集合与数据结构 · 接口 interfaces ·Collection 常用方法 · Map 常用方法
  • 面试面不过?大厂面试官是这样说的···
  • 秒懂YUV444/YUV422/YUV420计算(二十九)
  • 模方重大更新,支持3ds max、新版大疆数据、匀色、多原点数据等
  • 论文教程之 138位科研工作者分享如何(认真地)阅读一篇科学论文
  • MVC、MVP、MVVM三种模式的介绍及区别
  • 注意力机制综述学习记录
  • 数据结构c语言版第二版(严蔚敏)第三章笔记
  • 羊了个羊,但是Python简(li)单(pu)版
  • 【软件测试】测试用例的设计方法
  • 二叉树的遍历问题
  • .pyc 想到的一些问题
  • [笔记] php常见简单功能及函数
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • ➹使用webpack配置多页面应用(MPA)
  • 5、React组件事件详解
  • Docker容器管理
  • Git的一些常用操作
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • MySQL主从复制读写分离及奇怪的问题
  • Node + FFmpeg 实现Canvas动画导出视频
  • Python 基础起步 (十) 什么叫函数?
  • select2 取值 遍历 设置默认值
  • SpringCloud集成分布式事务LCN (一)
  • Spring框架之我见(三)——IOC、AOP
  • 搭建gitbook 和 访问权限认证
  • 构造函数(constructor)与原型链(prototype)关系
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 规范化安全开发 KOA 手脚架
  • 技术胖1-4季视频复习— (看视频笔记)
  • 简单易用的leetcode开发测试工具(npm)
  • 世界上最简单的无等待算法(getAndIncrement)
  • 移动端 h5开发相关内容总结(三)
  • 你对linux中grep命令知道多少?
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 正则表达式-基础知识Review
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #mysql 8.0 踩坑日记
  • #pragma预处理命令
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (C语言)fgets与fputs函数详解
  • (Matlab)使用竞争神经网络实现数据聚类
  • (备忘)Java Map 遍历
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)计算机毕业设计大学生兼职系统
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (转)linux 命令大全
  • (转)可以带来幸福的一本书