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

学习笔记6

时间:2023-10-22 18:24:01浏览次数:43  
标签:知识点 P1 int 笔记 学习 command 进程 PROC

第三章 Unix/Linux进程管理

多任务处理

  • 多任务处理指的是同时进行几项独立活动的能力
    这种逻辑并行性称为“并发”
    多任务处理是所有操作系统的基础

进程的概念

进程是对映像的执行
如下是一个非常简单的PROC结构体:

  • next是指向下一个PROC结构体的指针
  • ksp保存的堆栈指针
  • pid是一个进程的进程编号
  • status是当前状态
  • priority是进程调度优先级
  • kstack是进程执行时的堆栈

多任务处理系统

多任务处理系统,简称MT,由以下几个部分组成。

  • 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文件
    可实现队列和链表操作
int enqueue(PROC **queue,PROC *p)
{ 
   PROC *p = *queue;
   if(q==0||p->priority > q)
}

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;

实践

编程项目:编写一个c程序来显示设备上EXT2文件系统的块组描述符
相关的代码:


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_COMMAND_LENGTH 100

int main() {
    char command[MAX_COMMAND_LENGTH];
    
    while(1) {
        printf("请输入命令:");
        fgets(command, MAX_COMMAND_LENGTH, stdin);
        command[strcspn(command, "\n")] = '\0'; // 去除换行符
        
        if(strcmp(command, "exit") == 0) {
            printf("程序已退出。\n");
            break;
        }
        
        system(command); // 执行命令
        
        printf("\n");
    }
    
    return 0;
}

运行结果:

苏格拉底挑战

  1. 知识点1:进程的概念

    我在学习进程的概念知识点,请你以苏格拉底的方式对我进行提问,一次一个问题。

 - 针对我进程的概念知识点,我理解了吗?

 - 我的回答结束了,请对我的回答进行评价总结。

  1. 知识点2:进程管理的系统调用

    • 我在学习使用进程管理的系统调用知识点,请你以苏格拉底的方式对我进行提问,一次一个问题。

    • 针对我进程管理的系统调用知识点,我理解了吗?

    • 我的回答结束了,请对我的回答进行评价总结。

问题与解决思路

在学习过程中,我遇到了以下问题,并使用chatgpt等AI工具解决:

  1. 问题1:不是很理解进程创建的具体流程

标签:知识点,P1,int,笔记,学习,command,进程,PROC
From: https://www.cnblogs.com/zqr031029/p/17780793.html

相关文章

  • 第三章学习笔记
    第三章学习笔记一、Linux进程管理1.多任务处理在计算机技术中,多任务处理指的是同时执行几个独立的任务。在单处理器(单CPU)系统中,一次只能执行一个任务。多任务处理是通过在不同任务之间多路复用CPU的执行时间来实现的,即将CPU执行操作从一个任务切换到另一个任务。不同任务之......
  • Go笔记(3)-3种go语言的键盘输入详解
    go语言的键盘输入详解go语言中有三种输入函数,分别是:fmt.Scanf()可以按照指定的格式进行输入fmt.Scanln()通过指针将值赋值给变量fmt.Scan()(1)fmt.ScanScan从标准输入扫描文本,读取空白符分隔的值保存到传递给本函数的参数中,将换行符视为空白符使用......
  • 学习笔记6
    关于知识点知识点归纳第三章Unix/Linux进程管理3.1多任务处理一般来说,多任务处理指的是同时进行几项独立活动的能力。计算机科学中的多任务处理:操作系统:多任务处理是操作系统的核心功能之一,它允许多个程序在同一台计算机上并行运行,提高了资源利用率。多线程:多线程是在......
  • 2023-2024-1 20231424 《计算机基础与程序设计》第4周学习总结
    2023-2024-120231424《计算机基础与程序设计》第4周学习总结作业信息作业属于的课程2022-2023-1-计算机基础与程序设计作业要求2022-2023-1计算机基础与程序设计第一周作业作业目标自学计算机科学概论第4章,第5章和C语言程序设计第3章作业正文https://www......
  • #学期2023-2024-1 20231416 《计算机基础与程序设计》》第四周学习总结
    ##作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第四周作业这个作业的目标自学教材:计算机科学概论第4章,第5章,C语言程序设计第3章并完成云班课测试作业正文 https://www.cnblogs.com/shanshu......
  • 机器学习——数据操作(读这一篇就够了!)
    为了能够完成各种数据操作,我们需要某种方法来存储和操作数据。 首先,我们介绍维数组,也称为&amp;lt;strong&amp;gt;&amp;lt;em&amp;gt;张量&amp;lt;/em&amp;gt;&amp;lt;/strong&amp;gt;(tensor)。使用过Python中NumPy计算包的读者会对本部分很熟悉。无论使用哪个深度学习框架,它的&......
  • 学习笔记6
    知识点总结:多任务处理:多任务处理是操作系统的一个关键特性,它允许多个进程并发运行。操作系统的多任务处理提供了更好的系统利用率,因为它能够在同一时间内运行多个进程,而不仅仅是一个。多任务处理有助于提供更好的响应时间,因为它允许用户交互并同时运行多个应用程序。进程:......
  • 程序设计语言学习5
    九、上下文无关文法十、中缀后缀表达式 ......
  • 数据库基础学习过程中遇到的一些基础知识
    1、E-R图它是结构化分析过程的工具,用于数据建模,将现实世界中的十五抽象成信息世界里的数据;2、数据库设计包括--概念设计、逻辑设计、物理设计概念设计:用户角度、E-R图;逻辑设计:E-R图转换成关系模式;物理设计:物理存储方法、索引等;3、数据库系统的三级模式概念模式(也叫做模式、......
  • yzy第六周学习笔记
    第六周学习笔记多任务处理在计算机技术中,多任务处理指的是同时执行几个独立的任务。在单处理器(单CPU)系统中,一次只能执行一个任务。多任务处理是通过在不同任务之间多路复用CPU的执行时间来实现的,即将CPU执行操作从一个任务切换到另一个任务。不同任务之间的执行切换机制称为上......