2017-2018-1 20155218 《信息安全系统设计基础》第九周学习总结
教材学习内容总结
- 局部性
- ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。
ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。
- 一种称为静态RAM(StaticRAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM(DynamicRAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。
- ROM是以它们能股被重新编程的次数和对它们进行重新编程所用的机制来区分;
- 磁盘:
- 读SSD比写要快;
- 局部性通常有两种形式:
时间局部性(temporal locality):
时间局部性指的是:被引用过一次的存储器位置在未来会被多次引用(通常在循环中);空间局部性(spatial locality)如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。
- 在对向量的访问中,如果访问数序和存储顺序一致,并且是连续访问,那么这种访问具有良好的空间局部性。
- 评价局部性的简单原则:
1、重复引用同一个变量有良好的时间局部性
2、对于步长为k 的引用的程序,步长越小,空间局部性越小。步长1 的引用具有良好的空间局部性。k越大,空间局部性越差。
3、对于取指令来说、循环有较好的时间和空间局部性。
- 高速缓存与缓冲区的对比
教材学习中的问题和解决过程
- 问题1:当有多个进程访问磁盘,该采用哪一种最佳的调度算法?
- 问题1解决方案:
1先来先服务(FCFS)。
2最短寻道时间优先(SSTF)。
该算法选择这样的进程,其要求访问的磁道,与当前磁头所在的磁道距离最近,以使每次的寻址时间最短,但这种算法不能保证平均寻址时间最短。
3扫描算法(SCAN) 。
SSTF算饭会导致某些进程“饥饿“,该算法不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向。SCAN算法所考虑的下一个访问对象,应是其欲访问的磁道,既在当前磁道之外,又是距离最近的。这样自里向外地访问,直至再无更外的磁道需要访问时,才将磁臂换向自外向里移动。此方法广泛用于大,中,小型机器和网络中的磁盘调度。
4循环扫描(CSCAN)
CSCAN算法规定磁头单向移动,例如,只是自里向外移动,当磁头移动到最外的磁头并方位后,磁头立即返回到最里的欲访问磁道,即将最小磁道紧接着最大磁道号构成循环,进行循环扫描。
5 N-STep-SCAN算法。
将磁盘请求队列分成若干个长度为N的子队列,按FCFS算法依次处理这些子队列,而每处理一个队列时又是按SCAN算法。
6FSCAN算法。
将磁盘请求队列分成2个子队列,一个是当前所有请求磁盘I/O的进程行程的队列,由磁盘调度按SCAN算法进处理,在扫描期间,将新出现的所有请求磁盘I/O的进程,放入另一个等待处理的请求队列。这样所有的请求都将被推迟到下次扫描时处理。
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
- 有关wait类系统调用,说法正确的是(ABD)
A .
wait(&status) 等价于waitpid(-1, &status, 0)
B .
父进程中执行waitpid, 等待集合中的所有子进程结束了才返回
C .
父进程中执行waitpid, 等待集合中的任一子进程结束了才返回
D .
子进程中的退出状态在wait的status参数返回
- 关于代码 int main(){} 说法正确的是(ACE)
A .
返回值是0
B.
返回值不确定
C .
会调用exit(0)
D .
返回值大于0
E .
上面代码运行完,在命令行中运行echo $? 的值是0
- Unix/Linux中通过调用( D )可以获取子进程PID。
A .
getpid()
B .
getppid()
C .
getcpid()
D .
fork()
结对及互评
点评模板:
- 博客中值得学习的或问题:
- xxx
- xxx
- ...
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
- 其他
本周结对学习情况
- [20155218](博客链接)
- 结对照片
- 结对学习内容
- XXXX
- XXXX
- ...
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 940/2300 | 2/8 | 8/46 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
- 计划学习时间:10小时
- 实际学习时间:8小时
- 改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)