20211316郭佳昊 《信息安全系统设计与实现(上)》 第七周学习总结

发布时间 2023-10-22 20:07:36作者: 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重定向和通过管道连接的多个命令

三、苏格拉底挑战