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 |
教材学习内容总结
《计算机科学概论》第十章:操作系统
- 角色及作用
是系统软件的核心,负责管理计算机资源并提供人机交互的界面,允许应用程序与其他系统资源交互。
系统软件:直接与硬件交互,与应用软件区别开。
- 内存、进程与CPU管理
多道程序设计:在主存中同时驻留多个程序的技术;
分批处理系统:来自多个用户的作业组织成批;
- 分时
由一台主机和一组哑终端构成;
每个用户都有自己的虚拟机。
- 内存管理
所有程序在执行时都存储在主存中;
逻辑地址(相对于引用它的的程序)与物理地址(真实地址);
-> 单块内存管理:整个应用程序被载入一大块内存中。(必须考虑安全问题)
-> 分区内存管理:固定分区法和动态分区法(根据程序需要创建分区);
OS把分区的起始地址存储到基址寄存器,长度存到界限寄存器;
分区选择法:最先匹配(第一个能容纳的分区);最佳匹配(最小的分区);最差匹配(最大的分区);
压缩:动态分区中,作业可以移动,以创建较大的分区。
- 页式内存管理
帧:主存被分成的小的大小固定的存储块;
进程被划分为页,建立一个页映射表,把每个页映射到载入它的帧。
页面交换:从二级设备载入页面,使另一个页面从内存中删除。过多称为系统颠簸。
- 进程状态
就绪状态(Ready):当一个进程已经准备好运行,但是由于其他进程正在执行,它暂时无法获得CPU资源,处于就绪状态等待执行。
运行状态(Running):当CPU分配给进程,进程开始执行时,进程处于运行状态。在这个状态下,进程正在执行指令,使用CPU资源。
阻塞状态(Blocked):当一个进程在等待某些事件发生时,比如等待输入/输出操作完成、等待某个资源的释放等,进程会进入阻塞状态,暂时停止执行,直到等待的事件发生。
终止状态(Terminated):当一个进程执行完毕或者发生错误时,进程会被终止,进入终止状态。在这个状态下,进程占用的系统资源被释放,进程从系统中移除。
进程控制块(PCB):操作系统管理进程信息使用的数据结构。
上下文切换:一个进程移出CPU,另一个进程取代它时发生的寄存器信息交换。
- CPU调度
非抢先调度和抢先调度;->周转周期:衡量调度算法的一个依据。
先到先服务(FCFS);最短作业优先(SJN);轮询法;
第十一章:文件系统和目录
- 文件系统
主存用来存放正在使用的数据,具有易失性;用二级存储设备来永久存放数据。
文本文件(包含字符的文件)和二进制文件(包含特定格式的数据的文件,如图像、报表等);
文件类型及拓展名;
文件操作:创建、删除、打开、关闭、读取、写入等等;
文件访问:顺序访问(最常见)、直接文件访问(指针,按任何顺序读写记录);
- 目录
目录文件中存放关于目录中的其他文件的数据。
目录树:根目录,工作目录(当前所在的目录);
路径名:绝对路径(从根目录出发)和相对路径(从当前目录出发);
- 磁盘调度
寻道时间(读写头到达相应柱面的时间)、等待时间(盘片旋转到正确位置的时间);
磁盘调度法:先到先服务(FCFS)、最短寻道时间优先(SSTF)(问题:早期的远端请求永远得不到处理,称为饿死)
SCAN磁盘调度法(类似于电梯)->变体:环形SCAN算法(单向处理,然后直接返回)、LOOK磁盘调度法(最小化移动极限)。
《C语言程序设计》第八章:数组和算法基础
一维数组与二维数组的定义和初始化(注意事项:数组大小不能用变量来定义,第二维的长度声明永远不能省略);
向函数传递一维、二维数组(只传名字,二维及以上:形参不能省略大小);
排序和查找(线性和折半->要先排序);
遇到的问题及解决措施
- 分不清内存和主存的区别
通过询问GPT,发现二者本质上是一个概念。
- 在编写程序的过程中,在将数组作为函数参数的时候格式还记不准确;并且对选择排序的代码还不够熟练。
错题收集
解析: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 |