首页 > 其他分享 >学习笔记6

学习笔记6

时间:2023-10-22 21:34:26浏览次数:31  
标签:系统 笔记 学习 sh 3.3 进程 多任务处理 define

学习笔记6:多任务管理和进程管理

3.1 多任务管理

多任务处理是指同时执行多项独立活动的能力,它是操作系统的基础,也是并行编程的基础。

3.2 进程的概念

操作系统是一个多任务处理系统,任务也称作进程。正式定义中,进程是对映像的执行。操作系统内核将一系列执行视为使用系统资源的单一实体,包括内存空间、I/O设备以及最重要的CPU时间。每个进程用一个独特的数据结构表示,叫做进程控制块或任务控制块。

3.3 多任务处理系统

多任务处理系统(MT)由以下几个部分组成:

3.3.1 type.h文件

type.h文件定义了系统常数和表示进程的简单PROC结构体。

/*********** type.h file ************/
#define NPROC   9
#define SSIZE 1024
// PROC status
#define FREE    0
#define READY   1
#define SLEEP   2
#define ZOMBIE  3
typedef struct proc {
    struct proc *next;
    int *ksp;
    int pid;
    int status;
    int priority;
    int kstack[SSIZE];
} PROC;

3.3.2 ts.s文件

ts.s文件包含了32位GCC汇编代码,可实现进程上下切换。

3.3.3 queue.c文件

queue.c文件包含了可实现队列和链表操作的函数。enqueue()函数按优先级将PROC输入队列中,而在优先级队列中,具有相同优先级的进程按先进先出的顺序排序。dequeue()函数可返回从队列或链表中删除的第一个元素。printList()函数可打印链表元素。

3.3.4 t.c文件

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

3.3.5 多任务处理系统代码介绍

  • 虚拟CPU:MT系统在Linux下编译链接为gcc -m32 t.c ts.s,然后运行a.out。
  • init():当MT系统启动时,main()函数调用init()以初始化系统。
  • P0调用kfork()来创建优先级为1的子进程P1,将其输入就绪队列中。
  • tswitch(): 实现进程上下切换。
    • tswitch()中的SAVE函数:把返回地址保存在堆栈上。
    • scheduler(): 选择下一个正在执行的任务。
    • tswitch()的RESUME函数:转而指向另一个任务的PROC。
  • kfork(): 创建一个子任务并将其输入readyQueue。
  • body(): 所有创建的任务都执行同一个body()函数。
    • f: kfork一个新的子进程来执行body()。
    • s: 切换进程。
    • q: 终止进程。
  • 空闲任务P0:具有最低的优先级。
  • 运行多任务处理系统:gcc -m32 t.c ts.s。

3.4 进程同步

3.4.1 睡眠模式

当某进程需要某些当前没有的东西时,它会在某个事件值上进入休眠状态。

3.4.2 唤醒操作

唤醒正在休眠状态等待该事件值的所有程序。

3.5 进程终止

  • 正常终止:进程调用exit,发出_exit(value)系统调用来执行在操作系统内核中的kexit(value)。
  • 异常终止:进程因某个信号而异常终止。

3.6 MT系统中的进程管理

  • 用二叉树的形式实现进程家族树。
  • 实现ksleep()和kwakeup()进程同步函数。
  • 实现kexit()和kwait()进程管理函数。
  • 添加“w”命令来测试和演示等待操作。

3.7 Unix/Linux中的进程

  1. 进程来源

    • 当操作系统启动时,操作系统内核的启动代码会强行创建一个PID=0的初始进程。然后系统执行它。在初始化系统后,P0复刻一个子进程P1,并把进程切换为以用户模式运行P1.
  2. INIT和守护进程

    • P1的大部分子进程都是用来提供系统服务的。它们在后台运行,不与任何用户交互。它们被称为守护进程.
  3. 登录进程

    • 除了守护进程,P1复刻了许多登录进程,每个终端上一个,用于用户登录。每个登录进程打开三个与自己的终端相关联的文件流(stdin, stdout, stderr).
  4. sh进程

    • 当用户成功登录时,LOGIN 进程会获取用户的 gid 和 uid,从而成为用户的进程。它将目录更改为用户的主目录并执行列出的程序,通常是命令解释程序 sh。现在,用户进程执行sh,因此用户进程通常称为sh进程。它提示用户执行命令。一些特殊命令,如cd(更改目录)、退出、注销等,由sh 自己直接执行。其他大多数命令是各种 bin 目录(如/bin、/sbin、/usr/bin、/usr/local/bin 等)中的可执行文件。对于每个(可执行文件)命令,sh 会复刻一个子进程,并等待子进程终止。子进程将其执行映像更改为命令文件并执行命令程序。子进程在终止时会唤醒父进程 sh,父进程会收集子进程终止状态、

苏格拉底挑战问答

image
image

标签:系统,笔记,学习,sh,3.3,进程,多任务处理,define
From: https://www.cnblogs.com/lududuze/p/17781194.html

相关文章

  • 学习笔记6
    Unix/Linux进程管理多任务处理一般来说,多任务处理指的是同时进行几项独立活动的能力。在计算机技术中,多任务处理指的是同时执行几个独立的任务。在单处理器(单CPU)系统中,一次只能执行一个任务。多任务处理是通过在不同任务之间多路复用CPU的执行时间来实现的,即将CPU执行操作从......
  • 2023-2024-1 20231321 王曦轶《计算机基础与程序设计》第4周学习总结
    2023-2024-120231321《计算机基础与程序设计》第4周学习总结作业信息这个作业属于哪个课程<班级的链接>(2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2022-2023-1计算机基础与程序设计第4周作业)这个作业的目标<计算机科学概论第4章,......
  • 2023-2024-1 20231310 《计算机基础与程序设计》第4周学习总结
    作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第4周作业这个作业的目标计算机科学概论第4章,第5章,C语言程序设计第3章等作业正文https://www.cnblogs.com/wang-hoNbang/p/17781109.html......
  • 2023-2024-1 20231419 《计算机基础与程序设计》第四周学习总结
    2023-2024-120231419《计算机基础与程序设计》第四周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK04这个作业的目标预习《计算机科学概......
  • 2023-2024-1 20231325 《计算机基础与程序设计》第四周学习总结
    目录作业信息教材学习内容总结1.《计算机科学概论》第四章,第五章2.《c语言程序设计》第三章基于AI的学习学习心得学习进度条作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业的要求在哪里1.学习《计算机科学概论》第四章,第......
  • 学习笔记6
    目录学习笔记6知识点归纳第3章Unix/linux进程管理苏格拉底挑战问题与解决方案学习笔记6知识点归纳第3章Unix/linux进程管理多任务处理Unix/Linux操作系统支持多任务处理,即同时运行多个程序或任务。每个任务都是一个进程,独立运行,互不干扰。进程的概念:进程是操作系统中......
  • Python学习笔记(一)
    Python中一切皆对象,函数和类也是对象,属于Python的一等公民。对象可以赋值给一个变量对象可以添加到集合对象中对象可以作为参数传递给函数对象可以当做函数的返回值对象的三个特征:1、身份(id());2、类型;3、值type->int>1type>class->objobject是最顶层基类type也是一个......
  • 学习笔记6
    一、任务详情自学教材第3章,提交学习笔记(10分),评分标准如下知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”核心是要求GPT:“......
  • 20211316郭佳昊 《信息安全系统设计与实现(上)》 第七周学习总结
    一、任务要求[1]知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题核心是要求GPT:请你以苏格拉底的方式对我进行提问然后GPT就会......
  • 20211314王艺达学习笔记6
    Unix/Linux进程管理进程是Unix操作系统抽象概念中最基本的一种。进程管理是所有操作系统的心脏所在。一、进程进程是处于执行期的程序。除了可执行程序代码,还包括打开的文件、挂起的信号、内核内部数据、一个或者多个执行线程等多种资源线程是在进程活动中的对象;内核调度的......