20211316郭佳昊 《信息安全系统设计与实现(上)》 第七周学习总结
一、任务要求
[ 1 ] 知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容 (4分)
我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题
核心是要求GPT:请你以苏格拉底的方式对我进行提问
然后GPT就会给你提问,如果不知道问题的答案,可以反问AI:你的理解(回答)是什么?
如果你觉得差不多了,可以先问问GPT:针对我XXX知识点,我理解了吗?
GPT会给出它的判断,如果你也觉得自己想清楚了,可以最后问GPT:我的回答结束了,请对我的回答进行评价总结,让它帮你总结一下。
[ 2 ] 问题与解决思路,遇到问题最先使用chatgpt等AI工具解决,并提供过程截图(3分)
[ 3 ] 实践过程截图,代码链接(2分)
[ 4 ] 其他(知识的结构化,知识的完整性等,提交markdown文档,使用openeuler系统等)(1分)
二、知识点总结
多任务处理
- 指的是同时进行几项独立活动的能力,逻辑并行性称为“并发”
进程
- 进程是对影像的进行
typedef struct proc{
struct proc *next
int *ksp
int pid
int ppid
int status
int priority
int kstack[1024];
}PROC;
-
next是指向下一个PROC结构体的指针
-
ksp字段是保存的堆栈指针
-
pid是一个进程的进程编号
-
status是当前状态
-
priority是进程调度优先级
-
kstack是进程执行时的堆栈
多任务处理系统
- type.h文件
定义了系统常数和表示进程的简单PROC结构体
define NPROC 9
define SSIZE 1024
typedef struct proc
{
struct proc *next;
int *ksp;
int pid;
int ppid;
int status;
int priority;
int kstack[SSIZE];
}
- ts.s 文件
在32位GCC汇编代码中可实现进程上下文切换
- quene.c文件
实现队列和链表操作函数,enqueue()函数按优先级将PROC输入队列中,在优先级队列中,具有相同优先级的进程按先进先出的顺序排序,dequeue()函数可返回从队列或链表中删除的第一个元素,printList()函数可打印链表元素。
Unix/Linux中的进程
- 进程来源
操作系统启动时,强行创建一个PID=0的初始进程,然后执行。
- INIT和守护进程
P1运行时,将执行映像更改为INIT程序,因此,P1通常被称为INIT进程,P1开始复刻许多子进程,为系统服务,在后台运行,被称为守护进程。
- 登陆进程
除守护进程,P1复制许多LOGIN进程,每个终端上一个,用于用户登录,每个LOGIN进程打开3个文件流,用于标准输入stdin、标准输出stdout,标准错误信息stderr
- sh进程
支持I/O重定向和通过管道连接的多个命令
三、苏格拉底挑战