2021-2022-1 20211402 《信息安全专业导论》第九周学习总结
2021-2022-1 20211402 《信息安全专业导论》第九周学习总结
作业信息
|2021-2022-1信息安全专业导论|
|2021-2022-1信息安全专业导论第九周作业|
|作业正文|
教材学习内容总结
一、学习了《计算机科学概论》第十章操作系统与第十一章文件系统和目录。
内存、进程与CPU管理
多道程序设计:同时在主存中驻留多个程序,由它们竞争CPU的技术(所有现代操作系统都采用的是多道程序设计技术)
内存管理:了解主存中载有多少个程序以及它们的位置的动作
进程:程序执行过程中的动态表示法(区别:程序是一套静态指令,进程是动态的实体,表示正在执行的程序)
进程管理:了解活动进程的信息的动作
CPU调动:确定主存中的哪个进程可以访问CPU以便执行的动作
内存管理
逻辑地址:对一个存储值的引用,是相对于引用它的程序的。
物理地址:祝存储设备中的真实地址。
地址联编:逻辑地址和物理地址间的映射。
单块内存管理:把应用程序载入一段连续的内存区域的内存管理方法。
分区内存管理
固定分区法:把内存分为特定数目的分区以载入程序的内存管理方法。
动态分区法:根据容纳程序的需要对内存分区的内存管理方法。
基址寄存器:存放当前分区的起始地址的寄存器。
界限寄存器:存放当前分区的长度的寄存器。
页式内存管理
页式内存管理法:把进程划分为大小固定的页,载入内存时存储在帧中的内存管理方法。
帧:大小固定的一部分主存,用于存放进程页。
页:大小固定的一部分进程,存储在内存帧中。
页映射表:操作系统用于记录页和帧之间的关系的表。
请求分页:页式内存管理法的扩展,只有当页面被引用时才会被载入内存。
页面交换:把一个页面从二级存储设备载入内存,通常会使另一个页面从内存中删除。
虚拟内存:由于整个程序不必同时处于内存而造成的程序大小没有限制的假象。
系统颠簸:连续的页面交换造成的低效处理。
CPU调度
非抢先调度:当当前执行的进程自愿放弃了CPU时发生的CPU调度。
抢先调度:当操作系统决定照顾另一个进程而抢占当前执行进程的CPU资源时发生的CPU调度。
周转周期:从进程进去准备就绪状态到它最终完成之间的时间间隔,是评估CPU调度算法的标准。
选择进程方法
先到先服务
最短作业优先
轮询法
多线程
二、学习了《看漫画学Python》第十二章文件读写与第十六章多线程。
学习了file参数、mode参数、encoding参数和errors参数,明白了如何用代码关闭文件
学会了如何读写文本文件与复制文本文件。
线程模块————threading:
active count():返回当前处于活动状态的线程个数。
current thread():返回当前的Thread对象。
main thread():返回主线程对象。
子线程构建方法:
Thread(target=None, name=None, args=0)
target参数指向线程体函数,我们可以自定义该线程体函数
name参数可以设置线程名,如果省略这个参数,则系统会为其分配一个名称
args是为线程体函数提供的参数,是个元组类型
[代码托管]
# coding=utf-8
f = open('test.txt','w+')
f.write('World')
print('①创建text.txt文件,World写入文件')
f=open('test.txt','r+')
f.write('Hello')
print('②打开test.txt文件,Hello覆盖文件内容')
f=open('test.txt','a')
f.write('')
print('③打开test.txt文件,在文件尾部追加空格" "')
fname='C:/Users/86166/Documents/green/text.txt'
f=open(fname,'a+')
f.write('World')
print('④打开text.txt文件,在文件尾部追加World')
f_name='text.txt'
f=None
try:
f=open(f_name)
print('打开文件成功')
content=f.read()
print(content)
except FileNotFoundError as e:
print('文件不存在,请先使用11.22.py程序创建文件')
except OSError as e:
print('处理OSError异常')
finally:
if f is not None:
f.close()
print('关闭文件成功')
f_name='test.txt'
with open(f_name) as f:
content=f.read()
print(content)
# coding=utf-8
f_name='src_file.txt'
with open(f_name,'r',encoding='gbk') as f:
lines=f.readlines()
copy_f_name='dest_file.txt'
with open(copy_f_name,'w',encoding='utf-8')as copy_f:
copy_f.writelines(lines)
print('文件复制成功')
# coding=utf-8
f_name='logo.png'
with open(f_name,'rb') as f:
b=f.read()
copy_f_name='logo.png'
with open(copy_f_name,'wb') as copy_f:
copy_f.write(b)
print('文件复制成功')
#coding=utf-8
import threading
t = threading.current_thread()
print(t.name)
print(threading.active_count())
t = threading.main_thread()
print(t.name)
import threading
import time
def thread_body():
t=threading.current_thread()
for n in range(5):
print('第{0}次执行线程{1}'.format(n,t.name))
time.sleep(2)
print('线程{0}执行完成!'.format(t.name))
t1 = threading.Thread(target=thread_body)
t2 = threading.Thread(target=thread_body, name='MyThread')
t1.start()
t2.start()
import threading
import time
class SmallThread(threading.Thread):
def __init__(self, name=None):
super().__init__(name=name)
def run(self):
t = threading.current_thread()
for n in range(5):
print('第{0}次执行线程{1}'.format(n,t.name))
time.sleep(2)
print('线程{0}执行完成!'.format(t.name))
t1 = SmallThread()
t2 = SmallThread(name='MyThread')
t1.start()
t2.start()
import threading
import time
value = []
def thread_body():
print('t1子线程开始...')
for n in range(2):
print('t1子线程执行...')
value.append(n)
time.sleep(2)
print('子线程结束。')
print('主线程开始执行...')
t1 = threading.Thread(target=thread_body)
t1.start()
t1.join()
print('value = {0}'.format(value))
print('主线程继续执行...')
import threading
import time
isrunning = True
def workthread_body():
while isrunning:
print('工作线程执行中...')
time.sleep(5)
print('工作线程结束。')
def controlthread_body():
global isrunning
while isrunning:
command = input('请输入停止命令:')
if command == 'exit':
isrunnning = False
print('控制线程结束。')
workthread = threading.Thread(target=workthread_body)
workthread.start()
controlthread = threading.Thread(target=controlthread_body)
controlthread.start()
import threading
import time
import urllib.request
isrunning = True
def workthread_body():
while isrunning:
print('工作线程开始执行下载任务...')
download()
time.sleep(5)
print('工作线程结束。')
def controlthread_body():
global isrunning
while isrunning:
command = input('请输入停止指令:')
if command == 'exit':
isrunning = False
print('控制线程结束。')
def download():
url = 'http://localhost:8000/NoteWebService/logo.png'
req = urllib.request.Request(url)
with urllib.request.urlopen(url) as response:
data = response.read()
f_name = 'Download.png'
with open(f_name, 'wb')as f:
f.write(data)
print('下载文件成功')
workthread = threading.Thread(target=workthread_body)
workthread.start()
controlthread = threading.Thread(target=controlthread_body)
controlthread.start()
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | |
---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 |
第一周 | 200/200 | 2/2 | 30/30 |
第二周 | 300/500 | 2/4 | 15/35 |
第三周 | 200/700 | 2/6 | 20/55 |
第四周 | 300/1000 | 3/9 | 20/75 |
第五周 | 400/1400 | 3/12 | 20/95 |
第六周 | 500/1900 | 3/15 | 20/115 |
第七周 | 600/2500 | 4/19 | 25/140 |
第八周 | 600/3100 | 3/22 | 25/165 |
第九周 | 600/3700 | 3/25 | 25/190 |
计划学习时间:20小时
实际学习时间:25小时