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

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

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

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

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

         

        

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

         

       处理器

        

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

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

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

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


       存储

       

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

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

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

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

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

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


       文件

        

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

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

         

       设备

        

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

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

         

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

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

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

   


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 本文介绍了2020年计算机二级MSOffice的选择习题及答案,详细解析了操作系统的五大功能模块,包括处理器管理、作业管理、存储器管理、设备管理和文件管理。同时,还解答了算法的有穷性的含义。 ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
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社区 版权所有