博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2017-2018-1 20155319 《信息安全系统设计基础》第6周学习总结
阅读量:6363 次
发布时间:2019-06-23

本文共 1561 字,大约阅读时间需要 5 分钟。

教材学习内容总结

异常控制流概述

  1. 控制转移:从一条指令到下一条指令的过渡。
  2. 控制流:控制转移序列。

    - 最简单的控制流:平滑的序列,每条指令在存储器中都是相邻的。 - 平滑流的突变:由于跳转、调用和返回等指令造成两条指令不相邻。
  3. 异常控制流(Exceptional Control Flow, ECF):现代操作系统通过使控制流发生突变来对系统状态做出反应,这些突变称为异常控制流。
  4. 异常控制流发生在计算机系统的各个层次

    - 硬件层:硬件检测到的事件会触发控制突然装移到异常处理程序 - 操作系统层:内核通过上下文转换将控制从一个用户进程转移到另一个用户进程。 - 应用层:一个进程可以发送信号到到另一个进程,而接收者将会控制突然转移到它的一个信号处理程序。 - 一个程序可以通过回避通常的栈规则,并执行到其它函数中任意位置的非本地跳转来对错误做出反应。
  5. ECF是操作系统用来实现I/O、进程和虚拟存器的基本机制。
  6. 应用程序通过使用一个叫做陷阱或者系统调用的ECF形式,向操作系统请求服务。
  7. 操作系统为应用程序提供了强大的ECF机制,用来创建新进程、等待进程终止、通知其他进程中系统的异常事件、检测和相应这些事件。
  8. ECF是计算机系统中实现并发的基本机制。
  9. 软件异常允许程序进行非本地跳转来响应错误情况。非本地跳转是一种应用层ECF,在C中通过setjump和longjmp提供。

    系统级I/O

    1.输入输出I/O

输入输出I/O是在主存和外部设备(如磁盘,网络和终端)之间拷贝数据的过程。

- 输入就是从I/O设备拷贝数据到贮存
- 输出就是从主存拷贝数据到I/O设备

2.Unix I/O

一个Unix文件就是一个m个字节的序列:B0,B1,...,Bk,...,B(m-1)
  • 所有的I/O设备,如网络、磁盘、和终端,都被模型化为文件,而所有的输入和输出都被当做想对应的文件的读写来执行。这种将设备优雅的映射为文件的方式,允许Unix内核引出一个简单、低级的应用接口,称为UnixI/O,这使得所有的输入和输出都能以一种统一且一致的方式来执行。1.打开文件

  • 一个应用程序通过要求内核来打开文件,内核返回一个小的非负整数(描述符),内核记录有关这个文件的所有的信息,应用程序只需要记住这个描述符。

    Unix外壳创建的每个进程开始时都有三个打开的文件:  - 标准输入(描述符为0)  - 标准输出(描述符为1)  - 标准错误(描述符为2)
  • 头文件<unistd.h>

    定义常量STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO  可以用来代替显式的描述符
    输入输出I/O是在主存和外部设备(如磁盘,网络和终端)之间拷贝数据的过程。
    • 输入就是从I/O设备拷贝数据到贮存
    • 输出就是从主存拷贝数据到I/O设备

教材学习中的问题和解决过程

  • 问题1:fork函数返回两次的值是什么?
  • 问题1解决方案:,一次是在父进程中返回,另一次是在子进程中返回。

其他(感悟、思考等,可选)

这次实践博客中存在很多的问题不会,做的十分缓慢课堂知识不牢固,希望老师讲一下课堂实践补交的内容。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90
  • 计划学习时间:10小时

  • 实际学习时间:16小时

  • 改进情况:

(有空多看看)

参考资料

  • ...
  • 其他

转载于:https://www.cnblogs.com/rhl20155319/p/7751777.html

你可能感兴趣的文章
Asp.Net多线程用法1
查看>>
exFAT是支持Mac和Win的
查看>>
(转)postman中 form-data、x-www-form-urlencoded、raw、binary的区别
查看>>
js Date操作
查看>>
判断用户密码是否在警告期内(学习练习)
查看>>
sp_executesql的执行计划会被重用(转载)
查看>>
禅道项目管理软件插件开发
查看>>
Linux系统各发行版镜像下载
查看>>
JS获取键盘按下的键值event.keyCode,event.charCode,event.which的兼容性
查看>>
查看ORACLE 数据库及表信息
查看>>
腾讯、百度、阿里面试经验—(1) 腾讯面经
查看>>
Codeforces Round #374 (Div. 2) D. Maxim and Array 贪心
查看>>
HTML DOM 教程Part1
查看>>
GBDT的基本原理
查看>>
MySQL修改root密码的多种方法(转)
查看>>
MongoDB 基础命令——数据库表的增删改查——遍历操作表中的记录
查看>>
.NET Core 跨平台发布(dotnet publish)
查看>>
Activity入门(一)
查看>>
CentOS下如何从vi编辑器插入模式退出到命令模式
查看>>
Mysql索引的类型
查看>>