学习笔记6

第三章学习总结

多任务处理

  • 一般指的是同时进行几项独立活动的能力,这种逻辑并行性称为“并发”。

进程的概念

  • 进程是对映像的执行
  • 每个进程用一个独特的数据结构表示,称为进程控制块(PCB)或任务控制块(TCB),本书称为PROC结构体。如下是一个非常简单的PROC结构体:
  • next:指向下一个PROC结构体的指针
  • ksp:保存的堆栈指针
  • pid:一个进程的进程编号
  • status:表示当前状态
  • priority:进程调度优先级
  • kstack:进程执行时的堆栈

多任务处理系统

type.h文件

  • 文件定义了系统常熟和表示进程的简单PROC结构体
#define FREE 0
#define READY 1
#define SLEEP 2
#define ZOMBIE 3
typedef struct proc
{ 
   struct proc *next;
   int *ksp;
   int pid;
   int ppid;
   int status;
   int priority;
   int kstack[SSIZE];
}

ts.s文件

  • 在32位GCC汇编代码中可实现进程上下文切换

queue.c文件

  • 可实现队列和链表操作

t.c文件

  • t.c文件定义MT系统数据结构、系统初始化代码和进程管理函数

Unix/Linux中的进程

进程来源

  • 当操作系统启动时,操作系统内核的启动代码会强行创建一个PID=0初始进程。执行初始进程P0

INIT和守护进程

  • 当进程P1开始运行时,它将其执行映像更改为INIT程序。因此,P1通常被称为INIT进程,因为它的执行映像是init程序。P1 开始复刻出许多子进程。
  • P1的大部分子进程都是用来提供系统服务的。它们在后台运行,不与任何用户交互。

登录进程

  • P1复刻了许多LOGIN进程,每个终端上一个,用于用户登录。

sh进程

  • 当用户成功登录时,LOGIN进程会获取用户的gid和uid,从而称为用户的进程。他将目录更改为用户的主目录并执行列出的程序,通常是命令解释程序sh。

进程的执行模式

  • 在Unix/Linux中进程以两种不同的模式执行,即内核模式和用户模式,简称Kmode和Umode。在每种执行模式下,一个进程有一个执行映像。

编程项目:sh模拟器

带有I/O重定向的单命令

  • 提示用户输入命令行,其形式为:
    cmd arg1 arg2 arg3…argn
  • 处理简单命令:
cmd = "cd"  : chdir(arg1) OR chdir(HOME) if no arg1;
cmd = "edit": exit(0) to terminate;
  • 对于所有其他命令:
    • 创建子进程;
    • 等待子进程终止;
    • 打印子进程的退出状态;
    • 继续执行步骤1;
  • 子进程
    • 处理I/O重定向
    • 执行cmd,传递参数

带有管道的命令

ELF可执行文件与sh脚本文件

苏格拉底挑战






遇到的问题

posted @ 2023-10-21 16:42  gaozheng08  阅读(4)  评论(0编辑  收藏  举报