2024-2025-1 20241417 《计算机基础与程序设计》第九周学习总结
2024-2025-1 20241417 《计算机基础与程序设计》第九周学习总结
作业信息
这个作业属于哪个课程 | 2024-2025-1-计算机基础与程序设计 |
---|---|
这个作业要求在哪里 | 2024-2025-1计算机基础与程序设计第九周作业 |
这个作业的目标 | <操作系统责任、内存与进程管理、分时系统、CPU调度、文件、文件系统、文件保护、磁盘调度> |
作业正文 | https://www.cnblogs.com/lry666666/p/18565434 |
教材学习内容总结
操作系统责任
操作系统作为计算机系统的核心软件,肩负着多重重要责任。一方面,它需要对硬件资源进行全面管理,涵盖了 CPU、内存、磁盘、输入输出设备等各个关键硬件部件。例如,它合理地分配 CPU 时间,确保各个进程都能有序获得计算资源;对内存空间进行有效的划分与调配,满足不同程序运行时的内存需求。另一方面,它要为各类应用程序打造一个稳定且适宜的运行环境,处理应用程序之间的复杂关系,比如协调多任务的并发执行,避免相互冲突和干扰。同时,操作系统也是连接用户与计算机硬件的桥梁,负责处理用户的各种交互操作,像接收用户的指令、反馈相应的信息等,以此保障整个计算机系统高效、稳定且安全地运行,为用户提供良好的使用体验。
内存与进程管理
- 内存管理:
内存管理在操作系统中至关重要。它要动态地分配内存空间给不同的进程,当进程启动时,为其申请合适的内存区域来存放代码、数据等;在进程结束后,及时回收所占用的内存,以便重新分配给其他进程使用。虚拟内存技术更是一大亮点,它通过在磁盘等外部存储设备上开辟一部分空间作为内存的延伸,让进程在运行时仿佛拥有比实际物理内存更大的空间,按照需求将部分数据在物理内存和磁盘之间进行交换。例如,当多个大型程序同时运行而物理内存紧张时,虚拟内存能确保这些程序依然可以正常运转,同时也能保证不同进程的内存空间相互隔离,避免一个进程误访问或篡改其他进程的数据,提高了内存使用的安全性和整体利用率。 - 进程管理:
进程管理涉及进程从创建到结束整个生命周期的管控。首先,操作系统依据用户启动应用程序等操作来创建进程,为其分配必要的资源,如内存、CPU 时间片等,并设定初始状态为就绪状态,等待 CPU 调度。在进程运行过程中,会因等待某些事件(如输入输出操作完成)而进入阻塞状态,当等待条件满足后又重新回到就绪状态,继续竞争 CPU 资源,这个过程中操作系统负责协调进程状态的准确转换。而且,为了让多个进程能协同工作,操作系统还要管理进程间的同步与通信,比如通过信号量机制确保多个进程对共享资源的互斥访问,或者利用消息传递机制让不同进程能交换数据,从而实现多进程在系统中的并发执行,提高系统的整体运行效率。
分时系统
分时系统旨在实现多个用户对计算机系统资源的共享,且让每个用户感觉像是独占系统一样方便使用。它把 CPU 的运行时间划分成一个个极小的时间片,通常以毫秒甚至微秒为单位。系统按照一定的轮转策略,将这些时间片依次分配给各个联机的用户终端所对应的进程。例如,假设有三个用户同时登录系统并运行各自的程序,分时系统会轮流给这三个用户的进程分配时间片,每个进程在自己的时间片内运行一小段任务,然后暂停等待下一次轮到自己,如此循环往复。这种方式充分利用了 CPU 资源,避免了因某个用户长时间占用 CPU 而导致其他用户无法使用的情况,极大地提高了系统资源的利用率,同时也保证了每个用户的交互操作都能得到及时响应,用户可以随时输入指令并快速看到系统反馈,增强了系统的交互性和实用性。
CPU 调度
CPU 调度是操作系统中优化 CPU 使用效率的关键环节。其核心在于从众多处于就绪状态的进程队列中,依据特定的调度算法来挑选合适的进程分配 CPU 资源。常见的调度算法有多种,比如先来先服务算法,按照进程到达就绪队列的先后顺序依次分配 CPU,简单直观但可能导致短进程等待时间过长;短作业优先算法,则优先选择预计运行时间短的进程,能有效减少平均周转时间,但可能存在长进程饥饿的问题;时间片轮转算法,像前面分时系统里提到的那样,给每个进程分配固定的时间片,轮流使用 CPU,公平地对待各个进程,不过时间片大小的设置很关键,若设置不当会影响系统整体性能。通过这些不同的调度算法,操作系统根据实际情况合理选择应用,旨在提升 CPU 的利用率,缩短进程的平均周转时间,保证各个进程能公平地获得 CPU 资源,进而提升整个系统的运行性能,满足不同用户和应用程序的需求。
文件
文件是计算机系统中用于长期保存数据信息的一种基本单位,它本质上是有特定名称的数据集合,这些数据可以是文本、图像、音频、视频等各种形式,存储在磁盘、光盘等外部存储设备上。用户和应用程序通过文件名来对文件进行识别、访问和操作。例如,我们日常使用的文档文件(如.docx、.txt 格式)保存着文字内容,图片文件(如.jpg、.png 格式)存储着图像信息,它们都作为独立的文件存在,方便用户根据自己的需求进行创建、修改、删除、复制等操作,是计算机系统中信息存储和传递的重要载体。
文件系统
文件系统是操作系统中专门用于管理文件的一套机制,其功能涵盖了多个方面。在文件的存储方面,它负责将文件按照一定的逻辑结构和物理结构存储到磁盘等存储介质上,比如常见的树形目录结构,通过根目录、子目录等层级关系对文件进行分类组织,方便用户快速定位和查找文件。在检索功能上,提供了诸如按文件名、文件类型、创建时间等多种检索方式,让用户能迅速找到所需文件。同时,它还负责文件的更新操作,像修改文件内容后能准确地将新数据写回到存储位置,以及删除文件时对相关存储区域进行合理的清理回收。而且,文件系统向用户和应用程序提供了统一的、标准化的文件操作接口,无论底层硬件如何变化,用户和应用程序都可以使用诸如打开、关闭、读写等常规操作来处理文件,极大地简化了文件管理的复杂性,提高了文件管理的效率和便利性。
文件保护
文件保护旨在确保文件的安全性和保密性,防止文件被非法访问、篡改或破坏。操作系统通过多种手段来实现文件保护。其中,设置访问权限是最常见的方式,例如为文件定义读、写、执行等不同权限,对于不同的用户或用户组赋予相应的权限组合,像某个文件可能只允许文件所有者进行读写操作,而其他用户只能读取,这样就限制了非授权用户对文件的不当操作。此外,还会结合用户认证机制,要求用户在访问文件前通过输入用户名和密码等方式进行身份验证,只有通过验证的合法用户才能依据其权限对文件进行相应操作。同时,还可以利用加密技术对文件内容进行加密处理,即使文件数据被非法获取,没有正确的解密密钥也无法读懂文件内容,全方位地保障文件在存储和使用过程中的安全。
磁盘调度
磁盘调度主要针对磁盘的读写请求进行优化管理。由于磁盘读写速度相对较慢,而且磁盘臂在不同磁道间移动寻道时间占据了磁盘 I/O 操作的大部分时间,所以磁盘调度算法显得尤为重要。常见的磁盘调度算法包括先来先服务算法,即按照磁盘读写请求到达的先后顺序依次处理,简单但可能导致磁盘臂频繁大幅度移动,效率较低;最短寻道时间优先算法,优先选择距离当前磁头位置最近的磁道对应的读写请求进行处理,能有效减少寻道时间,但可能出现某些请求长时间被“饿死”的情况;扫描算法及其变种(如循环扫描算法),磁头按照一个固定方向扫描磁道,依次处理经过磁道上的读写请求,到达一端后再折返,这种方式在一定程度上兼顾了公平性和效率。通过合理运用这些磁盘调度算法,操作系统能够对众多磁盘读写请求进行有序安排,尽量减少磁盘臂的移动距离和移动次数,从而提高磁盘 I/O 的效率,加快数据的读写速度,提升整个计算机系统的运行性能。
教材学习中的问题和解决过程(先问 AI)
(一个模板:我看了这一段文字 (引用文字),有这个问题 (提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。【或者】我反对作者的观点(提出作者的观点,自己的观点,以及理由)。 )
- 问题 1:如果内存空间不足,操作系统可能会采取什么措施?
- 问题 1 解决方案:操作系统可能会启动虚拟内存机制,将内存中暂时不使用的数据交换到磁盘空间,以腾出内存给当前需要运行的进程使用。同时,也可能会对一些长时间未使用且优先级较低的进程进行内存回收操作,释放其占用的内存资源。
- 问题 2:在分时系统中,如果某个用户的进程在时间片用完时正好处于等待输入的状态,会发生什么?
- 问题 2 解决方案:该进程会被暂时挂起,操作系统会将 CPU 时间片分配给其他就绪进程。当该进程等待的输入完成后,它会重新进入就绪队列,等待下一次被分配 CPU 时间片继续执行。
- 问题 3:一个文件被设置了只读权限,普通用户尝试对其进行修改会怎样?
- 问题 3 解决方案:普通用户会收到权限不足的提示,无法对该文件进行修改操作。因为只读权限只允许用户读取文件内容,而禁止任何写入或修改操作。
代码调试中的问题和解决过程
- 问题1:在case分支后面之间声明了变量,导致编译错误
- 问题1解决方案:查阅课本后解决
- 问题2:swich每个分支结束后忘加break
- 问题2解决方案:查阅课本后解决
- 问题3:在主函数将数组传递给其他函数时只用写数组名,不用加中括号
- 问题3解决方案:询问AI后解决
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 0/2 | 18/38 | |
第三周 | 500/1000 | 1/3 | 22/60 | |
第四周 | 300/1300 | 1/4 | 30/90 | |
第五周 | 300/1600 | 1/5 | 30/120 | |
第六周 | 300/1900 | 1/6 | 30/150 | |
第七周 | 300/2200 | 1/7 | 30/180 | |
第八周 | 300/2500 | 1/8 | 30/210 | |
第九周 | 300/2800 | 1/9 | 30/240 |