0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

计算机操作系统知识点合集(下)

jf_78858299 来源:土豆居士 作者:土豆居士 2023-05-09 16:51 次阅读

四、存储管理

存储管理为了确保计算机有足够的内存处理数据;确保程序可以从可用内存中获取一部分内存使用;确保程序可以归还使用后的内存以供其他程序使用。

4.1 存储管理之内存分配与回收

内存分配的过程:单一连续分配(已经过时)、固定分区分配、动态分区分配(根据实际需要,动态的分配内存)。 动态分区分配算法

  1. 首次适应算法:分配内存时,从开始顺序查找适合内存区,若无合适内存区,则分配失败,每次从头部开始,使得头部地址空间不断被划分;
  2. 最佳适应算法:要求空闲区链表按照容量大小排序,遍历以找到最佳适合的空闲区(会留下越来越多的内部碎片)。
  3. 快速适应算法:要求有多个空闲区链表,每个空闲区链表存储一种容量的空闲区。

内存回收的过程:

  1. 回收区在空闲区下方:不需要新建空闲链表节点;只需要把空闲区1的容量增大即可;
  2. 回收区在空闲区上方:将回收区与空闲区合并;新的空闲区使用回收区的地址;
  3. 回收区在空闲区中间方:将空闲区1、空闲区2和回收区合并;新的空闲区使用空闲区1的地址;
  4. 仅仅剩余回收区:为回收区创建新的空闲节点;插入到相应的空闲区链表中去;

4.2 存储管理之段页式存储管理

页式存储管理:将进程逻辑空间等分成若干大小的页面,相应的把物理内存空间分成与页面大小的物理块,以页面为单位把进程空间装进物理内存中分散的物理块。

页面大小应该适中,过大难以分配,过小内存碎片过多;页面大小通常是512B~8K;

现代计算机系统中,可以支持非常大的逻辑地址空间(232~264),具有32位逻辑地址空间的分页系统,规定页面大小为4KB,则在每个进程页表中的页表项可达1M(2个20)个,如果每个页表项占用1Byte,故每个进程仅仅页表就要占用1MB的内存空间。

图片

段式存储管理:将进程逻辑空间分成若干段(不等分),段的长度由连续逻辑的长度决定。

页式和者段式存储管理相比:

  1. 段式存储和页式存储都离散地管理了进程的逻辑空间;
  2. 页是物理单位,段是逻辑单位;
  3. 分页是为了合理利用空间,分段是满足用户要求页大小由硬件固定,段长度可动态变化;
  4. 页表信息是一维的,段表信息是二维的;

段页式存储管理:现将逻辑空间按照段式管理分成若干段,再将内存空间按照页式管理分成若干页,分页可以有效提高内存利用率,分段可以更好的满足用户需求。

图片

4.3 存储管理之虚拟内存

虚拟内存概述:是操作系统内存管理的关键技术,使得多道程序运行和大程序运行成为现实,把程序使用内存划分,将部分暂时不使用的内存放置在辅存,实际是对物理内存的扩充。

局部性原理:指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。

虚拟内存的置换算法:先进先出(FIFO)、最不经常使用(LFU)、最近最少使用(LRU)

虚拟内存的特征:

  • 多次性:无需再作业运行时一次性全部装入内存,而是允许被分成多次调入内存;
  • 对换性:无需在作业运行时一直常驻内存,而是允许在作业运行过程中,将作业换入、换出;
  • 虚拟性:从逻辑上扩充了内存的容量,使用户看到的内存用来,远大于实际的容量;

4.4 Linux的存储管理

Buddy内存管理算法:经典的内存管理算法,为解决内存外碎片的问题,算法基于计算机处理二进制的优势具有极高的效率。

Linux交换空间:交换空间(Swap)是磁盘的一个分区,Linux内存满时,会把一些内存交换至Swap空间,Swap空间是初始化系统时配置的。

Swap空间与虚拟内存的对比:

图片

五、文件管理

5.1 操作系统的文件管理

文件的逻辑结构:

  • 逻辑结构的文件类型:有结构文件(文本文件,文档,媒体文件)、无结构文件(二进制文件、链接库)。
  • 顺序文件:按顺序放在存储介质中的文件,在逻辑文件当中存储效率最高,但不适合存储可变长文件。
  • 索引文件:为解决可变长文件存储而发明,需要配合索引表存储。

辅存的存储空间分配:

  • 辅存的分配方式:连续分配(读取文件容易,速度快)、链接分配(隐式链接和显式链接)、索引分配
  • 辅存的存储空间管理:空闲表、空闲链表、位示图。

目录树:使得任何文件或目录都有唯一的路径。

图片

Linux文件的基本操作:参考链接

图片

图片

图片

Linux的文件系统:FAT、NTFS(对FAT进行改进)、EXT2/3/4(扩展文件系统,Linux的文件系统)

六、设备管理

I/O设备的基本概念:将数据输入输出计算机的外部设备;

广义的IO设备:

  • 按照使用特性分类:存储设备(内存、磁盘、U盘)和交互IO设备(键盘、显示器、鼠标);
  • 按照信息交换分类:块设备(磁盘、SD卡)和字符设备(打印机、shell终端);
  • 按照设备共享属性分类:独占设备,共享设备,虚拟设备;
  • 按照传输速率分类:低速设备,高速设备;

IO设备的缓冲区:减少CPU处理IO请求的频率,提高CPU与IO设备之间的并行性。

SPOOLing技术:虚拟设备技术,把同步调用低速设备改为异步调用,在输入、输出之间增加了排队转储环节(输入井、输出井),SPoOLing负责输入(出)井与低速设备之间的调度,逻辑上,进程直接与高速设备交互,减少了进程的等待时间。

七、实现支持异步任务的线程池

线程池:线程池是存放多个线程的容器,CPU调度线程执行后不会销毁线程,将线程放回线程池重新利用。

使用线程池的原因:

  1. 线程是稀缺资源 ,不应该频繁创建和销毁;
  2. 架构解耦,业务创建和业务处理解耦,更加优雅;
  3. 线程池是使用线程的最佳实践。

实现线程安全的队列Queue

  • 队列:用于存放多个元素,是存放各种元素的“池”。
  • 实现的基本功能:获取当前队列元素数量,往队列放入元素,往队列取出元素。
  • 注意:队列可能有多个线程同时操作,因此需要保证线程安全,如下两种情况:

图片

实现基本任务对象Task

实现的基本功能:任务参数,任务唯一标记(UUID),任务具体的执行逻辑

实现任务处理线程ProcessThread:任务处理线程需要不断地从任务队列里取任务执行,任务处理线程需要有一个标记,标记线程什么时候应该停止。

实现的基本功能:基本属性(任务队列、标记),线程执行的逻辑(run),线程停止(stop)。

实现任务处理线程池Pool:存放多个任务处理线程,负责多个线程的启停,管理向线程池的提交任务,下发给线程去执行。

实现的基本过程:基本属性,提交任务(put,batch_put),线程启停(start,join),线程池大小(size)。

实现异步任务处理AsyncTask:给任务添加一个标记,任务完成后,则标记为完成;任务完成时可直接获取任务运行结果;任务未完成时,获取任务结果,会阻塞获取线程。

主要实现的两个函数:设置运行结果(set_result),获取运行结果(get_result)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    6290

    浏览量

    121898
  • 计算机系统
    +关注

    关注

    0

    文章

    213

    浏览量

    23884
  • IO设备
    +关注

    关注

    0

    文章

    21

    浏览量

    7324
收藏 人收藏

    评论

    相关推荐

    计算机操作系统PPT

    计算机操作系统PPT操作系统引论(1章)进程管理(2-3章)存储管理(4章)设备管理(5章)文件管理(6章)操作系统接口(7章)系统安全性(
    发表于 11-07 11:19

    计算机软件与操作系统

    计算机软件与操作系统  功能强大的计算机自从走进了人类的生活就发挥着越来越重要的作用,随着时代的发展,计算机已与人们的日常生活息息相关。不能不说计算
    发表于 09-13 10:09

    计算机操作系统

    计算机操作系统-进程(2)进程的状态与转换
    发表于 05-25 16:45

    在ARM中计算机技术和知识的分享

    1.相关资料的分享,c/c++语言面试宝典,从面试的角度看待编程语言应该如何学习2.计算机基础和操作系统资料分享,在应用的计算机底层的时候必须得掌握的知识3.高性能的mysql语言正确
    发表于 10-21 14:27

    嵌入式LinuxC语言的基本知识点

    嵌入式系统专业是综合了计算机硬件技术、计算机软件技术以及电子电路技术的一门综合学科,所涉及的内涵和知识非常广泛,包括:数字电路,模拟电路,计算机
    发表于 01-12 06:31

    微型计算机原理及应用知识点总结

    微型计算机原理及应用知识点总结
    发表于 07-16 07:51

    关于计算机组成原理的知识点总结的太棒了

    关于计算机组成原理的知识点总结的太棒了
    发表于 10-27 07:27

    计算机的基础知识点汇总,不看肯定后悔

    计算机的基础知识点汇总,不看肯定后悔
    发表于 11-15 06:03

    什么是计算机操作系统

    什么是计算机操作系统操作系统是一种为应用程序提供服务的系统软件,是一个完整的计算机系统的有机组成部分。从层次上来看,
    发表于 12-14 06:50

    嵌入式Linux C的基本知识点

    嵌入式系统专业是综合了计算机硬件技术、计算机软件技术以及电子电路技术的一门综合学科,所涉及的内涵和知识非常广泛,包括:数字电路,模拟电路,计算机
    发表于 12-17 08:08

    嵌入式系统与通用计算机操作系统的区别是什么

    嵌入式系统与通用计算机操作系统的区别以前仅学习并接触过嵌入式系统,通过对比,可以把以前学过的知识对应到
    发表于 12-22 06:35

    计算机操作系统课件

    计算机操作系统课件内容如下第1章  计算机操作系统概述.ppt1.1  存储程序式计算机模型1.2 
    发表于 11-07 09:43 0次下载
    <b class='flag-5'>计算机</b><b class='flag-5'>操作系统</b>课件

    计算机操作系统原理与设计

    计算机操作系统原理与设计算机操作系统原理与设计 计算机操作系统原理与设计
    发表于 06-03 14:30 42次下载

    计算机操作系统的最基本特征是什么_计算机操作系统是什么的接口

    计算机操作系统是用户与计算机的接口,在计算机中,操作系统是其最基本也是最重要的基础性系统软件;
    发表于 09-03 15:36 1.4w次阅读

    计算机操作系统知识点合集(上)

    定义:操作系统是控制管理计算机系统的硬软件,分配调度资源的系统软件。 目标:方便性,有效性(提高系统资源的利用率、提高系统的吞吐量),
    的头像 发表于 05-09 16:51 398次阅读
    <b class='flag-5'>计算机</b><b class='flag-5'>操作系统</b><b class='flag-5'>知识点</b><b class='flag-5'>合集</b>(上)