热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

【软考路上】——操作系统

计算机系统由硬件和软件两个部分组成,缺一不可,只有硬件、没有软件的计算机(裸机)就像一个没有灵魂、没有思想的植物人ÿ

       计算机系统由硬件和软件两个部分组成,缺一不可,只有硬件、没有软件的计算机(裸机)就像一个没有灵魂、没有思想的植物人,根本无法运行;而硬件又是软件的载体,说白了,软件就是硬件的状态,软件就是由硬件的两种状态(高低电平)来体现的,所以没有硬件,软件也就不存在。

       正巧这次自考和软考碰到一块了,索性一起总结一下操作系统的知识。画了满满的一张图,还是先宏观再微观地来看一下吧:

         

        

       整体上把操作系统所涉及的知识点分为处理器、存储、文件和外围设备四部分:

         

       处理器

        

       处理器是整个操作系统的核心。

       进程是程序的一次动态的执行过程,为了进一步提高资源利用率,又可以将一个进程进化成为多个线程。

       为了减小作业的平均周转时间,或者按实际情况(比如进程分为高低不同的优先级等)分配处理器,可以用到处理器的两级调度——作业调度(根据适当算法把进入作业井中的作业装入内存)和进程调度(根据适当算法把内存中的作业相对应的进程送入处理器执行);处理器还需要处理整个计算机运行过程中出现的各种各样的中断——中断响应→中断处理。

        进程有等待、就绪、执行等多种状态,处理器的进程调度对进程状态的切换,反映了进程的并发。因为同一个程序可以为不同的用户执行,也就创建了多个进程,多个进程间也可能要用到同一种或同一个资源,这时就要通过PV操作来合理分配并发进程在相关临界区的资源分配。


       存储

       

        存储器可以分为三个层次:寄存器(通常在CPU中)、主存储器和高速缓冲存储器、辅助存储器(硬盘、光盘、U盘等),存取速度依次越来越慢,价格越来越便宜。我们都知道,内存空间通常有系统区和用户区,这里只涉及到用户区的管理。

       对申请主存空间的作业如何为其分配,有如下几种方式:

       单用户连续存储管理——除操作系统外,其他空间(用户区)都分配给一个作业(感觉好浪费有木有);

       固定分区存储管理——把主存用户区事先划分成若干个区域(大小可等可不等),然后在每个作业申请时即为其分配一个未被占用的区域;

       可变分区存储管理——不事先分好区域,在作业申请空间时,“根据情况”来为作业分配空间,因为这里的“情况”复杂,所以有最先适应分配、最优适应分配、最坏适应分配等算法为其服务;

       页式存储管理——把住存储器分成许多大小相等的块,作业的逻辑地址分成页,页和块大小相等,主存分配空间时,为每个作业建立一张页表,作业的逻辑页号和为其分配的主存块号一一对应,不一定要为每个作业分配连续的地址,充分利用了松散的空间。


       文件

        

        文件这一块比较简单,主要就我们脑子里对文件的认识(逻辑结构)和文件在存储介质中的存储方式的对应。

        想深究的同志们,给您分享一篇文章:无结构文件(流式文件)和有结构文件(记录式文件)

         

       设备

        

        设备可以分为独占设备和可共享设备,独占设备从一个作业开始占用它直到作业结束的期间内,不允许其他作业占用,如打印机,即使分配了多个打印的作业,它也是打完一份菜会开始下一个作业的打印;可共享设备可以让多个作业同时使用(但不是实际意义上的痛一个设备在同时处理多件事情,我的理解是跟处理器可以同时处理多个“交替”的进程差不多)。

        磁盘的调度很大程度上也会影响计算机的性能,如下:

         

       寻找(查找)时间就是磁头从一个柱面移动到另一个柱面所用时间,可以用先来先服务、最短寻找时间、电梯调度等算法来减小磁头移动的时间;延迟(等待)时间就是扇区转到磁头指定位置的时间;传送(传输)时间就是磁头把信息从磁道上读取到内存或把内存中的信息写到磁道上的时间。

        缓冲技术主要用来缓解CPU与外部设备工作速度不匹配的矛盾。

        关于通道,正如思维导图上,用了一张图来表示,主要用来协助CPU管理输入输出设备,当需要输入和输出时,CPU启动通道并向通道传达输入输出的命令,剩下的就由通道自己控制了,当完成输入输出的操作时,向CPU报告执行情况,CPU根据结果执行下一步操作。就如同原来所有的事情都是老板(CPU)一个人做,后来老板雇了一个员工(通道)帮他做一些事,这样老板就能去做其他事情,当然如果员工在工作过程中出现了意外无法处理的情况,就得停止当前作业(中断),由老板来处理。

   


推荐阅读
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • vivo发布iQOO 11系列:搭载骁龙8 Gen2与多项创新技术
    vivo正式推出iQOO 11系列智能手机,该系列搭载最新的高通骁龙8 Gen2处理器,并引入多项创新技术,致力于为用户提供卓越的性能和游戏体验。 ... [详细]
  • 电脑蓝屏故障的成因与解决方案(下)
    本文深入探讨了导致电脑蓝屏的具体原因,并提供了相应的解决方法,帮助用户更好地理解和处理这一常见问题。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
author-avatar
xiaobaibai
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有