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小时

参考资料

《计算机科学概论》
《看漫画学python》视频课

posted @ 2021-11-20 14:22  20211402赵佳怡  阅读(15)  评论(0编辑  收藏  举报