《操作系统》知识框架整理(上)

简介: 《操作系统》知识框架整理

第1章 计算机系统概述


1.1 操作系统的基本概念


1.1.1 操作系统的三大功能


参考博客:https://blog.csdn.net/weixin_43914604/article/details/104408571


操作系统有以下三大功能:



1.1.2 操作系统的四大特征


参考博客:https://blog.csdn.net/weixin_43914604/article/details/104416461



四大特征:并发、共享、虚拟、异步


这里注意区别并发和并行的概念:


  • 并发:两个或多个事件在同一时间间隔内发生,这些事件在宏观上是同时发生的,在微观上是交替发生的。操作系统的并发性指系统中同时存在着多个运行的程序


  • 并行:两个或多个事件在同一时刻发生


  • 资源共享即共享,是指系统中的资源可以供内存中多个并发执行的进程共同使用


  • 虚拟是把一个物理上的实体变为若干逻辑上的对应物。


  • 异步:多道程序环境允许多个程序并发执行,但由于资源有限,如cpu只有一个,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进。


并发性和共享性互为存在条件


1.2 操作系统的分类


参考博客:https://blog.csdn.net/weixin_43914604/article/details/104445449


总共有以下8种,由前发展到后




1.3 操作系统的运行机制和体系结构


1.3.1 运行机制和体系结构


参考博客:https://blog.csdn.net/weixin_43914604/article/details/104452762




1.3.2 中断和异常


参考链接:https://blog.csdn.net/weixin_43914604/article/details/104462974



1.3.3 系统调用


参考链接:https://blog.csdn.net/weixin_43914604/article/details/104464558



第 2 章 进程管理


2.1 进程与线程


2.1.1 进程的定义、特征、组成、组织


参考博客:https://blog.csdn.net/weixin_43914604/article/details/104758221


PCB是什么?


PCB:进程控制块



(1)进程的定义



(2)进程的特征



(3)进程的组成



(4)进程的组织



2.1.2 进程的五种状态及状态转换


参考链接:https://blog.csdn.net/weixin_43914604/article/details/104819326



2.1.3 原语实现对进程的控制


参考链接:https://blog.csdn.net/weixin_43914604/article/details/104880533


(1)什么是进程控制?



(2)进程控制的五种原语


进程的创建、终止、唤醒、阻塞、切换。


什么是原语呢?


系统中的设备驱动、CPU切换、进程通信等功能中的部分操作都可定义为原语。


具体细节内容就点上面博客链接了,这里主要是理一个大纲。


2.1.4 进程之间的三种通信


参考链接:https://blog.csdn.net/weixin_43914604/article/details/104882398


什么是进程通信呢?


进程通信是指进程间的信息交换。


三种通信:共享通信、消息传递、管道通信



2.1.5 线程概念与多线程模型


参考链接:https://blog.csdn.net/weixin_43914604/article/details/104885645


线程是处理机调度单位,进程是资源分配单位



(1)什么是线程



(2)线程的属性



(3)多线程模型


多对一模型



一对一模型



多对多模型



2.2 处理机的调度


2.2.1 处理机的三种调度


参考链接:https://blog.csdn.net/weixin_43914604/article/details/105323244



(1)调度的概念



(2)高级调度( 作业调度)



(3)中级调度(内存调度)



(4)低级调度(进程调度)



(5)三种调度对比



2.2.2 进程调度的时机、过程、方式


参考博客:https://blog.csdn.net/weixin_43914604/article/details/105324472



2.2.3 调度算法的五种评价指标


参考链接:https://blog.csdn.net/weixin_43914604/article/details/105325136



(1)CPU利用率



(2)系统吞吐量


系统吞吐量:单位时间内完成作业的数量



(3)周转时间



(4)等待时间



(5)响应时间



2.2.4 六种作业/进程调度算法


前三种参考链接:https://blog.csdn.net/weixin_43914604/article/details/105328521


后三种参考链接:https://blog.csdn.net/weixin_43914604/article/details/105333646


  1. 先来先服务(FCFS)


  1. 短作业优先(SJF)


  1. 高响应比优先(HRRN)


  1. 时间片轮转调度算法(RR)


  1. 优先级调度算法


  1. 多级反馈队列调度算法


(1)先来先服务(FCFS)


  • First come first sever



(2)短作业优先(SJF)


  • Shortest Job First



(3)高响应比优先(HRRN)


  • Highest Response Ratio Next


问题:响应比是什么?



具体怎么计算参考链接博客


(4)前三种算法对比



(5)时间片轮(RR)


  • Round-Robin


通俗讲,一人几分钟,轮流来。


 


(6)优先级调度算法



(7)多级反馈队列调度算法



(8)后三种算法对比



2.3 进程的同步与互斥


2.3.1 进程的同步与互斥


参考链接:https://blog.csdn.net/weixin_43914604/article/details/104942405


临界区一次只能进一个进程



实现临界区进程互斥的软件实现方法:


https://blog.csdn.net/weixin_43914604/article/details/104943004


实现临界区进程互斥的硬件实现方法:


https://blog.csdn.net/weixin_43914604/article/details/104944962


2.4 死锁


参考链接:https://blog.csdn.net/weixin_43914604/article/details/105437474



2.4.1 什么是死锁?



2.4.2 死锁产生的四个必要条件


互斥条件、不剥夺条件、请求和保持条件、循环等待条件



2.4.3 什么时候会发生死锁?


对不可剥夺资源的不合理分配



2.4.4 死锁的处理策略



(1)预防死锁


① 破坏互斥条件


采用SPOOLing技术将互斥的资源改造为共享资源


缺点:不是所有的资源都能改造成共享资源



② 破坏不可剥夺条件


强行释放手里的资源



③ 破坏请求和保持条件


进程一下子申请完所有需要的资源。


缺点:资源利用率低,可能造成某些进程饥饿



④ 破坏循环等待条件


相当于成环的链式资源分配改为不成环的顺序资源分配



(2)避免死锁:银行家算法


系统处于不安全状态未必死锁,但死锁时一定处于不安全状态。系统处于安全状态一定不会死锁。


什么是安全序列?



(3)死锁的检测和解除



① 死锁的检测



② 死锁的解除


三种方法:资源剥夺法、撤销进程法、进程回退法



目录
相关文章
|
3月前
|
机器学习/深度学习 Android开发 开发者
探索移动应用开发的未来:跨平台框架与操作系统的融合
【8月更文挑战第3天】 在移动应用开发的浪潮中,跨平台框架和移动操作系统之间的融合正开启新的篇章。本文将深入探讨如何通过Flutter等框架简化开发流程,同时分析iOS和Android系统的最新动态,并预测未来的发展趋势。
43 4
|
3月前
|
机器学习/深度学习 人工智能 Android开发
未来趋势下的移动应用开发:探索跨平台框架与操作系统的融合
在数字化时代的浪潮中,移动应用开发正经历着前所未有的变革。随着消费者需求的多样化和市场竞争的加剧,开发者们正在寻求更为高效、灵活的解决方案来应对挑战。本文将深入探讨移动应用开发的未来趋势,特别是跨平台框架的发展以及它们如何与不同的移动操作系统相融合。我们将从技术演进的角度出发,分析当前市场上流行的框架,并预测未来可能的发展方向。通过具体案例和技术解析,本文旨在为读者提供一个全面而深入的视角,以理解移动应用开发领域的最新动态。
|
3月前
|
Web App开发 敏捷开发 测试技术
自动化测试框架的设计与实现探索操作系统的心脏:内核与用户空间的交互
【8月更文挑战第26天】本文旨在探讨自动化测试框架的设计原则、核心组件和实现方法。通过分析自动化测试的优势,我们深入讨论了框架设计的关键考虑因素,包括模块化、可重用性、可扩展性和易维护性。文章还介绍了如何利用流行的测试工具和编程语言来实现一个高效的自动化测试框架,并通过实例展示了框架的应用。
|
4月前
|
人工智能 物联网 Android开发
探索移动应用开发的未来之路:跨平台框架与操作系统的融合
在本文中,我们将深入探讨移动应用领域的最新发展趋势,特别是跨平台框架如何重新塑造移动应用的开发和部署。通过分析当前市场上流行的移动操作系统,如Android和iOS,以及它们对跨平台技术的支持情况,我们将展示开发者如何在保持原生性能的同时,实现代码复用和应用快速部署。文章还将探讨人工智能、物联网等新兴技术如何与移动应用开发相结合,为未来的移动生态系统带来创新。最后,我们将讨论这些技术变革对用户体验、安全性和隐私保护的影响。
|
3月前
|
前端开发 Android开发 开发者
移动应用开发的未来:探索跨平台框架与操作系统的融合
在数字化时代的浪潮中,移动应用成为了我们日常生活的一部分。随着技术的不断进步,移动应用开发领域也迎来了新的变革。本文将深入探讨移动应用开发的新趋势,特别是跨平台框架的兴起以及它们如何与不同的移动操作系统相融合,为开发者和用户带来前所未有的便利和效率。从React Native到Flutter,我们将一探这些工具如何重塑开发生态,同时分析它们对移动操作系统的影响和未来可能的发展路径。
|
3月前
|
开发框架 前端开发 API
探索移动应用开发的未来:跨平台框架与操作系统的融合
在数字时代,移动应用成为人们日常生活的一部分。随着移动设备和操作系统的多样化,开发者面临着前所未有的挑战。本文深入探讨了移动应用开发的发展趋势,尤其是跨平台技术如Flutter和React Native如何改变游戏规则,以及这些变化对移动操作系统的影响。通过实例分析,我们预见未来移动应用开发将更加便捷、高效,且能够无缝地跨越不同平台,为用户提供一致的体验。
35 0
|
4月前
|
敏捷开发 监控 Devops
自动化测试框架的选择与实践揭秘操作系统的心脏:内核
【7月更文挑战第31天】在软件开发的生命周期中,测试阶段占据着举足轻重的地位。随着敏捷开发的流行和DevOps文化的渗透,自动化测试成为提升软件交付速度和质量的关键工具。本文将探讨自动化测试框架的选择标准,并通过一个实际案例来展示如何有效实施自动化测试策略,旨在为读者提供一套清晰的指导思路和实操经验。
27 0
|
4月前
|
前端开发 Android开发 开发者
《移动应用开发的未来:跨平台框架与操作系统的协同进化》
在移动技术不断演进的背景下,移动应用开发正面临着前所未有的挑战与机遇。本文深入探讨了移动应用开发的现状与未来趋势,特别是跨平台框架的发展如何影响开发者和用户。通过分析Flutter、React Native等主流框架的优势与局限,结合iOS和Android操作系统的最新更新,文章揭示了跨平台技术如何在提高开发效率的同时保证用户体验。此外,本文还讨论了移动操作系统对应用性能的影响,以及开发者如何利用这些系统特性来优化应用。
|
6月前
|
开发框架 前端开发 Android开发
移动应用开发的未来:跨平台框架与原生操作系统的融合
【5月更文挑战第28天】随着移动设备用户群体的不断壮大,移动应用开发已成为技术前沿的重要领域。本文探讨了在当前移动操作系统多样化的背景下,如何通过采用跨平台开发框架和深入理解不同移动操作系统的特性来优化移动应用的性能和用户体验。我们将分析比较主流的跨平台工具如React Native、Flutter以及原生开发环境iOS和Android的特点,并预测未来移动应用开发的可能趋势。
|
6月前
|
开发框架 前端开发 Android开发
移动应用开发的未来:跨平台框架与原生操作系统的融合
【5月更文挑战第31天】 在本文中,我们将探讨移动应用开发领域的最新趋势,特别是跨平台开发框架和原生移动操作系统之间的融合。随着移动设备用户数量的不断增加,开发人员面临着在不同平台上提供一致体验的挑战。我们分析了跨平台工具如React Native和Flutter的兴起,以及它们如何利用原生系统特性来优化性能和用户体验。此外,文章还讨论了移动操作系统的最新进展,包括Android和iOS对开发者支持的增强。最后,我们提出了一个关于未来移动应用开发的预测,并强调了持续集成、自动化测试和云服务在现代移动开发流程中的重要性。