【愚公系列】软考中级-软件设计师 023-操作系统(考点简介)
🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2023年华为云十佳博主,2022年CSDN博客之星TOP2,2022年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
🚀前言
操作系统(Operating System)是计算机系统中的核心软件之一,它是管理和控制计算机硬件和软件资源的软件系统。操作系统为用户提供了一个直接与计算机硬件进行交互的界面,同时也是应用程序和硬件之间的桥梁。
操作系统的主要功能包括以下几个方面:
-
管理和调度计算机硬件资源:操作系统负责管理计算机的各种硬件资源,包括中央处理器(CPU)、内存、硬盘、输入输出设备等。它通过调度算法来合理分配和利用这些资源,提高计算机的性能和效率。
-
提供用户接口:操作系统为用户提供了一个交互界面,使用户能够通过命令行或图形化界面与计算机进行交互。用户可以通过操作系统来运行程序、管理文件、设置系统参数等操作。
-
管理和保护文件系统:操作系统负责管理计算机存储设备上的文件系统,包括创建、删除、读取和写入文件等操作。同时,操作系统也提供了对文件的访问控制和保护机制,以确保文件的安全和完整性。
-
提供系统服务和支持:操作系统为应用程序提供了一系列的系统服务和支持,如网络通信、安全认证、进程间通信等。它还负责管理和监控运行中的应用程序,以及处理异常和错误情况。
操作系统是计算机系统中的一个重要组成部分,它起到了协调和管理计算机硬件和软件资源的作用,为用户和应用程序提供了一个稳定和可靠的运行环境。
🚀一、操作系统
🔎1.操作系统概述
🔎2.进程管理
-
进程的组成
-
进程的状态
-
前趋图和进程管理图
-
进程间的同步和互斥
-
信号量(pv)操作
-
进程调度
-
死锁
🔎3.存储管理
-
分区存储管理
-
页式存储管理
-
快表
-
段式存储管理
-
段页式存储管理
-
页面置换算法
🔎4.设备管理
-
I/O软件
-
虚设备和SPOOLING技术
-
磁盘调度
-
DMA技术
🔎5.文件管理
-
文件的结构和组织
-
存取方法和存储空间的管理
-
空闲存储空间的管理
🔎6.作业管理
-
作业状态与作业管理
-
作业调度算法
🚀二、操作系统(6-8分)(重点)
🔎1.操作系统概述
操作系统(Operating System,简称OS)是一种控制和管理计算机硬件和软件资源的系统软件。它是一个位于硬件和应用程序之间的软件层,提供了对计算机系统的基本管理和操作。操作系统负责管理计算机的硬件资源,如中央处理器、内存、磁盘等,并提供一系列的服务和接口,使用户和应用程序能够方便地与计算机进行交互和操作。
操作系统的主要功能包括进程管理、内存管理、文件系统管理和设备驱动程序管理等。进程管理是指操作系统对进程的创建、调度、终止和通信的管理;内存管理是指操作系统对内存资源的分配、回收和保护的管理;文件系统管理是指操作系统对文件的创建、读写、删除和保护的管理;设备驱动程序管理是指操作系统对外部设备的管理和控制。
操作系统还提供了一些常用的系统服务和工具,如用户界面、网络协议、安全性管理和调试工具等,以便用户和开发人员能够更方便地使用和开发应用程序。
操作系统有多种类型,如Windows、Linux、macOS等。不同的操作系统具有不同的特点和功能,适用于不同的应用场景和用户需求。
🔎2.进程管理
操作系统的进程管理是指操作系统对进程进行创建、调度、终止和资源分配等活动的管理。进程是指程序在执行过程中的一个实例,是操作系统分配资源的基本单位。
进程管理包括以下主要内容:
-
进程创建:操作系统可以通过创建新进程的系统调用来启动一个新的程序实例。在创建进程时,操作系统会为其分配唯一的进程标识符(Process ID,PID),并为其分配其他必要的资源。
-
进程调度:操作系统负责决定哪个进程可以使用CPU并在何时使用。调度算法可以根据一些策略,如优先级、先来先服务等来选择下一个要执行的进程。
-
进程终止:当一个进程完成了任务或发生错误时,操作系统会终止该进程。在终止进程之前,操作系统会回收该进程所占用的资源。
-
进程通信:不同的进程之间需要进行数据交换和通信。操作系统提供了多种机制,如管道、消息队列、共享内存等,来实现进程间的通信。
-
进程同步:在多进程环境下,进程可能会相互干扰或产生竞争条件。操作系统提供了一些同步机制,如互斥锁、信号量等,来协调并发进程间的访问和数据共享。
-
进程间的资源管理:操作系统管理进程的资源分配,如内存、文件、设备等。操作系统会为每个进程分配一定的内存空间,并管理其对设备和文件的访问。
进程ID | 状态 | 优先级 | CPU时间 | 内存占用 |
---|---|---|---|---|
P1 | 运行 | 高 | 10ms | 100KB |
P2 | 等待 | 中 | 5ms | 50KB |
P3 | 就绪 | 低 | 0ms | 80KB |
P4 | 就绪 | 高 | 0ms | 120KB |
P5 | 等待 | 中 | 0ms | 70KB |
在这个表格中,每一行表示一个进程,而每一列表示进程的不同属性。以下是各个属性的解释:
- 进程ID:每个进程都有一个唯一的标识符,用于在操作系统中区分不同的进程。
- 状态:进程的状态可以是就绪(等待CPU调度)、运行(正在执行中)或者等待(等待某个事件的发生)。
- 优先级:每个进程可能有一个优先级,用于操作系统决定进程调度的顺序。优先级可以是高、中或低。
- CPU时间:进程已经分配到的CPU时间,表示进程已经使用了多少时间片来执行。
- 内存占用:进程当前占用的内存空间大小。
通过进程管理,操作系统可以对进程的状态进行监控和管理。例如,操作系统可以根据进程的优先级来进行调度,将CPU资源分配给优先级较高的进程。同时,操作系统还可以检查进程的占用资源情况,以避免资源的过度占用和浪费。
🔎3.存储管理
操作系统的存储管理是指操作系统如何管理计算机内存资源,以便有效地分配、跟踪和保护内存。
存储管理的主要任务包括:
-
内存分配:操作系统需要分配内存给正在运行的程序或进程。通常,内存被划分为多个固定大小的块,称为页、段或帧。操作系统采用算法来确定哪些块是可用的并分配给进程。
-
内存保护:操作系统需要保护进程之间的内存空间互不干扰。一种常见的方法是使用虚拟内存,将每个进程的地址空间映射到不同的物理内存地址,使得每个进程都认为它独占整个内存空间。
-
内存回收:当一个进程终止或释放它所使用的内存时,操作系统需要回收这些内存并标记为可用。对于虚拟内存系统,操作系统还需要进行页面交换,将暂时不需要的内存页面移出到磁盘上,以释放物理内存。
-
内存管理策略:操作系统需要采取合适的策略来管理内存资源。常见的策略包括固定分区、动态分区和虚拟内存。固定分区将内存分成固定大小的分区,每个进程都被分配一个分区;动态分区根据进程的大小动态分配内存;虚拟内存使用了磁盘作为扩展内存,只将部分进程的页面加载到物理内存,从而节省内存空间。
-
内存压缩和交换:当内存不足时,操作系统可以通过内存压缩来减少存储数据所需的内存空间。如果没有足够的空闲内存,操作系统可以将暂时不需要的页面交换到磁盘上,以释放物理内存。
-
内存映射:操作系统可以将不同设备的内存空间映射到进程的地址空间中,使得进程可以直接访问设备内存而无需中断操作。
以下是常见的几种存储管理:
- 空闲内存块表格(Free Memory Blocks Table):该表格记录了系统中所有的空闲内存块的起始地址和大小。通常以链表或位图的形式表示。
起始地址 | 大小 |
---|---|
0x1000 | 512 |
0x2000 | 256 |
0x3000 | 1024 |
- 占用内存块表格(Used Memory Blocks Table):该表格记录了系统中已被占用的内存块的起始地址、大小和所属进程等信息。
进程ID | 起始地址 | 大小 |
---|---|---|
P1 | 0x1000 | 256 |
P2 | 0x2000 | 512 |
P3 | 0x3000 | 1024 |
- 进程控制块表格(Process Control Block Table):该表格记录了系统中所有进程的相关信息,包括进程名、状态、优先级、页表等。
进程ID | 进程名 | 状态 | 优先级 | 页表 |
---|---|---|---|---|
P1 | A | 就绪 | 1 | 0x1000 |
P2 | B | 运行 | 2 | 0x2000 |
P3 | C | 阻塞 | 3 | 0x3000 |
🔎4.设备管理
操作系统的设备管理是指操作系统对计算机的各种硬件设备(如磁盘驱动器、打印机、键盘、鼠标等)进行管理和控制的过程。设备管理主要包括设备的分配、调度、控制和错误处理。
设备的分配是指将可用的设备分配给进程使用。操作系统需要管理设备的资源,并在多个进程之间进行分配,以确保每个进程能够访问到所需的设备。
设备的调度是指操作系统决定设备使用的顺序。由于设备可能同时被多个进程请求使用,操作系统需要决定哪个进程能够先使用设备,以保证设备的高效利用和公平分配。
设备的控制是指操作系统对设备进行控制和操作。通过设备驱动程序,操作系统可以控制设备的启动、停止、读写等操作,以及处理设备发出的中断信号。
设备的错误处理是指操作系统对设备发生的错误进行处理。设备可能发生各种故障或错误,如设备无响应、数据传输错误等,操作系统需要检测和处理这些错误,并尽可能地恢复设备的正常工作状态。
设备编号 | 设备名称 | 设备类型 | 设备状态 | 是否可用 | 设备驱动程序 |
---|---|---|---|---|---|
1 | 键盘 | 输入设备 | 运行中 | 可用 | 键盘驱动程序 |
2 | 鼠标 | 输入设备 | 运行中 | 可用 | 鼠标驱动程序 |
3 | 打印机 | 输出设备 | 运行中 | 可用 | 打印机驱动程序 |
4 | 显示器 | 输出设备 | 运行中 | 可用 | 显示器驱动程序 |
5 | 网络适配器 | 输入/输出设备 | 运行中 | 可用 | 网络适配器驱动程序 |
🔎5.文件管理
操作系统的文件管理涉及到操作系统如何组织和控制存储设备上的文件。文件管理的目标是提供方便和可靠的方法来创建、读取、写入、修改和删除文件,并确保数据的安全和可靠性。
操作系统的文件管理需要解决以下几个方面的问题:
-
文件命名和目录结构:操作系统需要提供一种方式来给文件命名,并将文件组织成目录结构。文件命名可以使用任意字符,但通常会有一些限制。目录结构可以是层次化的,以便于用户查找和组织文件。
-
文件存储管理:操作系统需要管理存储设备上的文件存储空间。文件存储管理可以通过分配磁盘空间来存储文件,并记录文件的位置和大小。常用的文件存储管理方法包括连续分配、链接分配和索引分配。
-
文件访问和权限管理:操作系统需要提供一套权限机制来控制文件的访问权限。这可以通过给每个文件分配所有者和权限位来实现,以确保只有授权的用户可以访问文件内容。
-
文件操作:操作系统需要提供一组文件操作接口,包括创建、打开、关闭、读取、写入、修改和删除文件。这些操作可以通过文件系统调用来实现。
-
文件备份和恢复:操作系统需要提供备份和恢复文件的功能,以防止文件丢失或损坏。这可以通过定期备份文件以及提供恢复文件的方法来实现。
文件管理在操作系统中起着非常重要的作用,它记录了文件在存储设备中的存储位置、文件大小、文件类型等信息。下面是一个简单的文件管理表格展示:
文件名 | 文件类型 | 文件大小 | 存储位置 |
---|---|---|---|
file1 | txt | 10KB | 100 |
file2 | jpg | 5MB | 500 |
file3 | mp3 | 3MB | 1000 |
file4 | doc | 20KB | 1500 |
🔎6.作业管理
操作系统的作业管理是指操作系统对计算机系统中的作业进行管理和调度的过程。作业是一组相关的任务或程序,它们结合在一起以完成用户的需求。作业管理的主要目标是实现资源的合理分配和高效利用,提高系统的吞吐量和响应时间。
作业管理包括以下几个方面的内容:
-
作业提交:用户将自己的作业提交给操作系统,包括作业的程序、数据和优先级等信息。
-
作业调度:操作系统根据一定的调度算法,从作业队列中选择一个或多个作业进入系统运行。调度算法可以根据作业的优先级、等待时间、资源需求等因素进行选择。
-
作业分配:一旦作业被调度进入系统运行,操作系统需要为其分配所需的资源,如主存空间、CPU时间、设备等。
-
作业控制:操作系统对作业进行控制和监视,确保它们按照预期执行并完成。操作系统会分配进程控制块(PCB)来保存作业的运行状态和信息。
-
作业同步:当系统中有多个作业并发执行时,操作系统需要确保它们之间的数据共享和互斥访问的正确性。这通常通过使用信号量、互斥锁等机制来实现。
-
作业通信:操作系统提供一些机制用于不同作业之间的通信和数据交换,如管道、消息队列等。
-
作业完成和回收:当作业完成后,操作系统会回收其分配的资源,并将其从系统中移除。
作业ID | 作业名称 | 到达时间 | 优先级 | 状态 | 进程ID |
---|---|---|---|---|---|
J1 | 作业1 | 10:00 | 1 | 就绪 | P1 |
J2 | 作业2 | 10:05 | 2 | 运行 | P2 |
J3 | 作业3 | 10:10 | 3 | 阻塞 | P3 |
J4 | 作业4 | 10:15 | 1 | 等待 |
🚀感谢:给读者的一封信
亲爱的读者,
我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。
如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。
我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。
如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。
再次感谢您的阅读和支持!
最诚挚的问候, “愚公搬代码”
- 点赞
- 收藏
- 关注作者
评论(0)