美文网首页
1.创建第一进程

1.创建第一进程

作者: 月下蓑衣江湖夜雨 | 来源:发表于2021-02-15 23:51 被阅读0次

第一步:进程表数据结构

进程表就是个结构体数组

#define  LDT_SIZE  2      // LDT大小
#define  NR_TASKS  1      // 支持的进程个数,Number Restriction

// 进程调度的时候,保存现场用的栈帧,保存寄存器的值
typedef struct s_stackframe {
    uint32  gs;
    uint32  fs;
    uint32  es;
    uint32  ds;
    uint32  edi;
    uint32  esi;
    uint32  ebp;
    uint32  kernel_esp;   // 内存栈指针
    uint32  ebx;
    uint32  edx;
    uint32  ecx;
    uint32  eax;
    uint32  retaddr;      // 返回地址:运行中被中断的话,存放的是eip;初始时,应存放程序入口地址
    uint32  eip;
    uint32  cs;
    uint32  eflags;
    uint32  esp;
    uint32  ss;
} __attribute__((packed)) STACK_FRAME;

// 进程定义
typedef  struct  s_proc {
    STACK_FRAME    regs;            // 寄存器现场信息
    uint16         ldt_sel;         // LDT选择子
    DESCRIPTOR     ldts[LDT_SIZE];  //
    uint32         pid;             // 进程号
    char           p_name[16];      // 进程名
} __attribute__((packed)) PROCESS;

// 进程表
PROCESS  proc_table[NR_TASKS];

第二步:添加main函数

相关文章

  • 1.创建第一进程

    第一步:进程表数据结构 进程表就是个结构体数组 第二步:添加main函数

  • python基础篇大合集,进程、装饰器、列表详解篇!

    进程以及状态 1. 进程 2. 进程的状态 进程的创建-multiprocessing 1. 创建进程 2. 进程...

  • linux守护进程

    创建守护进程 1.创建会话 创建一个新的会话,首先要创建一个子进程,父进程退出,然后在子进程中创建一个新的会话(使...

  • python的进程

    1.进程Process multiprocessing模块提供了一个Process类来创建一个进程对象 创建子进程...

  • 学习笔记| (二)IPC机制

    一.多进程 1.创建多进程: 在android 中通过 android:process为四大组件创建新的进程 在特...

  • 孤儿进程与僵尸进程(转)

    1. 概念我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结...

  • 进程状态和线程状态

    进程状态有五种: 1.创建状态(new):进程正在被创建,尚未到就绪状态。 2.就绪状态(ready):进程已处于...

  • 多进程笔记:

    ### 在Python中多进程的创建方式对比: 1. 在Python中,可以通过`os.fork()`创建子进程,...

  • 如何创建守护进程

    一 编写守护进程的步骤 1. 创建子进程,父进程退出 2. 在子进程中创建新会话 3. 改变当前目录为根目录 4....

  • 进程学习记录1

    跨平台的进程创建模块 1.方法一: 使用 Process 类创建子进程 支持跨平台:windows / linux...

网友评论

      本文标题:1.创建第一进程

      本文链接:https://www.haomeiwen.com/subject/vpxmxltx.html