2023-2024-1 20231419 《计算机基础与程序设计》第九周学习总结

发布时间 2023-11-26 10:56:46作者: 林子雯

2023-2024-1 20231419 《计算机基础与程序设计》第九周学习总结

作业信息

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP
这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK09
这个作业的目标 自学《计算机科学概论》第十、十一章,《C语言程序设计》第八章并完成云班课测试
作业正文 https://www.cnblogs.com/linziwen/p/17856341.html

教材学习内容总结

《计算机科学概论》第十章:操作系统

  1. 角色及作用

是系统软件的核心,负责管理计算机资源并提供人机交互的界面,允许应用程序与其他系统资源交互。

系统软件:直接与硬件交互,与应用软件区别开。

  1. 内存、进程与CPU管理

多道程序设计:在主存中同时驻留多个程序的技术;

分批处理系统:来自多个用户的作业组织成批;

  • 分时

由一台主机和一组哑终端构成;

每个用户都有自己的虚拟机。

  • 内存管理

所有程序在执行时都存储在主存中;

逻辑地址(相对于引用它的的程序)与物理地址(真实地址);

-> 单块内存管理:整个应用程序被载入一大块内存中。(必须考虑安全问题)

-> 分区内存管理:固定分区法和动态分区法(根据程序需要创建分区);

OS把分区的起始地址存储到基址寄存器,长度存到界限寄存器;

分区选择法:最先匹配(第一个能容纳的分区);最佳匹配(最小的分区);最差匹配(最大的分区);

压缩:动态分区中,作业可以移动,以创建较大的分区。

  • 页式内存管理

帧:主存被分成的小的大小固定的存储块;

进程被划分为页,建立一个页映射表,把每个页映射到载入它的帧。

页面交换:从二级设备载入页面,使另一个页面从内存中删除。过多称为系统颠簸。

  • 进程状态

就绪状态(Ready):当一个进程已经准备好运行,但是由于其他进程正在执行,它暂时无法获得CPU资源,处于就绪状态等待执行。

运行状态(Running):当CPU分配给进程,进程开始执行时,进程处于运行状态。在这个状态下,进程正在执行指令,使用CPU资源。

阻塞状态(Blocked):当一个进程在等待某些事件发生时,比如等待输入/输出操作完成、等待某个资源的释放等,进程会进入阻塞状态,暂时停止执行,直到等待的事件发生。

终止状态(Terminated):当一个进程执行完毕或者发生错误时,进程会被终止,进入终止状态。在这个状态下,进程占用的系统资源被释放,进程从系统中移除。

进程控制块(PCB):操作系统管理进程信息使用的数据结构。

上下文切换:一个进程移出CPU,另一个进程取代它时发生的寄存器信息交换。

  • CPU调度

非抢先调度和抢先调度;->周转周期:衡量调度算法的一个依据。

先到先服务(FCFS);最短作业优先(SJN);轮询法;

第十一章:文件系统和目录

  • 文件系统

主存用来存放正在使用的数据,具有易失性;用二级存储设备来永久存放数据。

文本文件(包含字符的文件)和二进制文件(包含特定格式的数据的文件,如图像、报表等);

文件类型及拓展名;

文件操作:创建、删除、打开、关闭、读取、写入等等;

文件访问:顺序访问(最常见)、直接文件访问(指针,按任何顺序读写记录);

  • 目录

目录文件中存放关于目录中的其他文件的数据。

目录树:根目录,工作目录(当前所在的目录);

路径名:绝对路径(从根目录出发)和相对路径(从当前目录出发);

  • 磁盘调度

寻道时间(读写头到达相应柱面的时间)、等待时间(盘片旋转到正确位置的时间);

磁盘调度法:先到先服务(FCFS)、最短寻道时间优先(SSTF)(问题:早期的远端请求永远得不到处理,称为饿死)

SCAN磁盘调度法(类似于电梯)->变体:环形SCAN算法(单向处理,然后直接返回)、LOOK磁盘调度法(最小化移动极限)。

《C语言程序设计》第八章:数组和算法基础

一维数组与二维数组的定义和初始化(注意事项:数组大小不能用变量来定义,第二维的长度声明永远不能省略);

向函数传递一维、二维数组(只传名字,二维及以上:形参不能省略大小);

排序和查找(线性和折半->要先排序);

遇到的问题及解决措施

  1. 分不清内存和主存的区别

通过询问GPT,发现二者本质上是一个概念。

  1. 在编写程序的过程中,在将数组作为函数参数的时候格式还记不准确;并且对选择排序的代码还不够熟练。

错题收集


解析:A. 命令式(或过程式)范例允许程序员表达源自自顶向下设计的算法。这种范例侧重于定义要执行的一系列步骤,这与自顶向下的方法相吻合,即将问题分解为更小、更易处理的部分。其他范例可能也在一定程度上支持自顶向下设计,但命令式范例专门设计用于此目的。因此,选A。

基于AI的学习



学习进度条

重要成长 代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
目标 5000行 30篇 400小时
第一周 0 1/2 12/12
第二周 20 1/3 12/24
第三周 30 1/4 12/36
第四周 80 1/5 24/60
第五周 120 1/6 30/90
第六周 200 1/7 30/120
第七周 280 1/8 20/140
第八周 600 1/9 30/170
第九周 1500 1/10 20/190