美文网首页
操作系统实验1:进程控制

操作系统实验1:进程控制

作者: Mr_K_ | 来源:发表于2019-12-26 15:46 被阅读0次

●基本要求

模拟操作系统内核对进程的控制和管理:包括进程的创建和撤 销、进程状态的切换和简单的内存空间管理。

●实验提示:

1、 定义管理每个进程的数据结构 PCB:包含进程名称、队列指针、 分配的物理内存区域(基址和 长度 ) 。每创建一个进程时,需要为其创建 PCB 并 分配空闲内存空间 ,对 PCB 进行初始化,并加入就绪队列。可参考如下数据结构(动态形式)

typedef struct PCB
{
    int adress;
    int memery;
    char name[16];
    struct PCB *next;
}PCB,*linkpcb;

为了实现进程在不同状态下的切换,需要设置三个队列,分别是运行队列,阻塞队列,就绪队列。并在一开始的时候就初始化它们为空队列准备进程的进入。
队列使用的数据结构也是PCB

struct PCB *ready,*blocked,*running;

队列初始化函数参考:

void InitQueue(linkpcb &rear,linkpcb &front)//初始化队列
{
    linkpcb lq=new PCB;
    lq->next=NULL;
    rear=lq;
    front=lq;
}

进程进入队列的函数参考:

void InQueue(linkpcb &p,linkpcb &rear)//插入到队列中
{
    p->next=NULL;
    rear->next=p;
    rear=p;
}

进程从某一个状态改变至另一种运行状态的过程需要从表示相应状态的队列中出队列再进入到目标状态的队列。这个操作也就是比较核心的进程状态改变操作。同时在实际函数调用的时候不要忘记判断一下队列是否为空的问题。

linkpcb DeQueue(linkpcb &front,linkpcb &rear)//删除队列的第一个元素,并返回这个元素
{
    linkpcb p;
    if(front==rear) //如果此时队列为空
        return 0;
    p=front->next;
    front->next=p->next;
    p->next=NULL;
    if(rear==p)
        rear=front;
    return p;
}

设置全局变量memory和address,记录整个操作系统的基址和内存值

int Adress,Memery;

相关文章

  • js-操作系统-node.js

    操作系统实验总结 实验源码 实验一 进程控制 processProject 实验二 分页式存储管理 change...

  • 操作系统实验1:进程控制

    ●基本要求 模拟操作系统内核对进程的控制和管理:包括进程的创建和撤 销、进程状态的切换和简单的内存空间管理。 ●实...

  • 1-3节linux系统编程

    进程创建和调度 1)进程 进程:程序的一次执行在操作系统中的影像进程控制块(PCB):对于操作系统来说,PCB即代...

  • Linux 如何创建进程?

    《Linux 内核分析》 MOOC 课程实验 分析 Linux 操作系统如何创建一个进程 1.进程概述 在很久很久...

  • 操作系统第二次上机实验-进程通信

    实验题目:进程通信 实验目的 熟练使用 Linux 的 C 语言开发环境 掌握 Linux 操作系统下的并发进程间...

  • 进程的描述和进程的创建

    进程的描述 进程控制块PCB -- task_struct 操作系统的三大核心功能:1、进程管理2、内存管理3、文...

  • 进程控制块

    操作系统内的每个进程表示,采用进程控制块也称为任务控制块。它包含许多某个特定进程相关的信息。 进程状态:状态可以包...

  • 进程控制块(Process Control Block)

    进程控制块的作用 进程控制块是进程实体的一部分,是操作系统中最重要的记录型数据结构。PCB中记录了操作系统所需要的...

  • 操作系统的进程管理(1)

    1.进程的概念 为了更好地描述和控制程序的并发执行,实现操作系统的并发性和共享性 进程控制块(Process Co...

  • Linux 进程切换和调度

    《Linux 内核分析》 MOOC 课程实验 分析 Linux 操作系统进程上下切换过程 1.基本概念 我们知道,...

网友评论

      本文标题:操作系统实验1:进程控制

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