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

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

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

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

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

         

        

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

         

       处理器

        

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

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

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

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


       存储

       

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

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

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

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

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

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


       文件

        

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

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

         

       设备

        

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

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

         

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

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

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

   


推荐阅读
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 本文详细介绍如何使用 Apache Spark 执行基本任务,包括启动 Spark Shell、运行示例程序以及编写简单的 WordCount 程序。同时提供了参数配置的注意事项和优化建议。 ... [详细]
  • 想搭建一个能够稳定支持每日500万页面浏览量(PV)的网站架构吗?了解500万PV的实际意义,以及如何计算服务器需要处理的并发请求量,是成功构建高效架构的关键。本文将从基础概念出发,深入探讨实现这一目标所需的技术细节和策略。 ... [详细]
  • 2017-2018年度《网络编程与安全》第五次实验报告
    本报告详细记录了2017-2018学年《网络编程与安全》课程第五次实验的具体内容、实验过程、遇到的问题及解决方案。 ... [详细]
  • 本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • Google排名优化-面向Google(Search Engine Friendly)的URL设计 ... [详细]
  • 深入解析Spring Cloud微服务架构与分布式系统实战
    本文详细介绍了Spring Cloud在微服务架构和分布式系统中的应用,结合实际案例和最新技术,帮助读者全面掌握微服务的实现与优化。 ... [详细]
  • 本文详细探讨了Java中Volatile关键字的工作原理、优化技巧及其在实际开发中的应用场景,特别是在提高多线程环境下数据可见性和减少锁竞争方面的优势。 ... [详细]
  • Spring Cloud学习指南:深入理解微服务架构
    本文介绍了微服务架构的基本概念及其在Spring Cloud中的实现。讨论了微服务架构的主要优势,如简化开发和维护、快速启动、灵活的技术栈选择以及按需扩展的能力。同时,也探讨了微服务架构面临的挑战,包括较高的运维要求、分布式系统的复杂性、接口调整的成本等问题。最后,文章提出了实施微服务时应遵循的设计原则。 ... [详细]
  • 前言无论是对于刚入行工作还是已经工作几年的java开发者来说,面试求职始终是你需要直面的一件事情。首先梳理自己的知识体系,针对性准备,会有事半功倍的效果。我们往往会把重点放在技术上 ... [详细]
  • 字节跳动夏季招聘面试经验分享
    本文详细记录了字节跳动夏季招聘的面试经历,涵盖了一、二、三轮面试的技术问题及项目讨论,旨在为准备类似面试的求职者提供参考。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • MySQL性能测试标准倡议:老叶提出的压测基准
    进行MySQL的压力测试通常是为了评估新旧版本之间的性能差异、验证硬件升级的效果、测试参数调整的影响以及评估新业务的负载承受能力。老叶提出了一个MySQL压力测试基准值倡议,旨在促进行业内的标准化和成果共享。 ... [详细]
  • 本文详细列举了软件开发中常见的功能测试要点,涵盖输入框、搜索、添加/修改、删除、文件上传下载等多个方面,旨在帮助测试人员全面覆盖测试需求,确保软件质量。 ... [详细]
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社区 版权所有