首页 > 系统相关 >C语言模拟进程状态

C语言模拟进程状态

时间:2023-11-26 20:01:28浏览次数:30  
标签:process changed state C语言 Process State printf 进程 模拟

首先定义进程状态的枚举类型为ProcessState

typedef enum {
  NEW,
  READY,
  RUNNING,
  BLOCKED,
  TERMINATED
} ProcessState;

而后据图中进程运行代码

int main() {
  
  ProcessState process = NEW;

  
  printf("Process created. State: NEW\n");

  
  process = READY;
  printf("Process state changed. State: READY\n");

  
  process = RUNNING;
  printf("Process state changed. State: RUNNING\n");

  
  process = BLOCKED;
  printf("Process state changed. State: BLOCKED\n");

  
  process = TERMINATED;
  printf("Process state changed. State: TERMINATED\n");

  return 0;
}

具体代码
a
运行结果
b

标签:process,changed,state,C语言,Process,State,printf,进程,模拟
From: https://www.cnblogs.com/9q2z2z/p/17857809.html

相关文章

  • 进程和线程的区别
    线程(Thread)和进程(Process)是操作系统中用于执行程序的基本执行单元,它们之间有几个关键的区别:定义:进程:进程是程序的一次执行过程,是一个独立的、具有一定资源的运行环境。它包括程序计数器、寄存器集合、内存空间和其他系统资源。线程:线程是进程的一部分,是一个程序内的独立执......
  • 进程管理
    Linux作为一个多用户、多任务的操作系统,其进程管理是系统运行的关键。本篇博客将深入介绍Linux进程的基础知识、常用命令以及一些建议的最佳实践。1.什么是进程?在Linux中,进程是程序的执行实例。每个运行在系统上的程序都与一个或多个进程相关联。进程有自己的内存空间、状态、......
  • linux之进程控制(万字长文详解)
    进程控制进程创建——fork函数用于创建子进程的系统调用接口!这是一个函数函数执行前只有一个父进程,函数执行后有一个父进程一个子进程进程调用fork,当控制转移到内核中的fork代码后,内核做分配新的==内存块和内核数据结构(PCB,地址空间,页表)==给子进程将父进程部分数据结构内......
  • Linux学习随笔——进程管理
    一、查看进程1.静态进程ps:命令可以查看静态进程,类似给进程制作快照;psaux命令可以查看当前目录的进程;psaux--sort-%cpu:可以查看进程按照CPU占用百分比的降序排列;ps-ef:可以查看UID、PID、PPID等信息;psaxo:可以快速查找需要显示的内容,内容简介并且有针对性;几种常用的查看......
  • 进程间通信--学习笔记
    #进程间通信--pipe、FIFO、共享内存、消息队列、信号量pipe(无名管道)​ 只能实现有亲缘关系进程之间的通信,它是单向的,intpipe(intpiped[2])//创建管道fd[0]:读文件,fd[1]:写文件。之后可以用open()、write()函数进行对管道进行操作,创建管道要在fork()之前以保证......
  • 孤儿进程,守护进程,僵尸进程
    @TOC前言当谈到进程管理时,了解以下进程是很重要的:僵尸进程(ZombieProcess),孤儿进程(OrphanProcess),守护进程(DaemonProcess)。一、守护进程Daemon守护进程,是Linux中的后台服务进程,通常独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。创建守护进程最关键的是调......
  • 郑轻工 3097. 筛质数 + 二分 = 小模拟
    importjava.util.Arrays;importjava.util.Scanner;classMain{staticint[]pri=newint[100];staticintidx;publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intx=sc.nextInt();init......
  • 《初学C语言第七天》
    ////写一个代码打印1-100之间所有3的倍数的数字//#include<stdio.h>//intmain()//{// inti=1;// for(i=1;i>=1&&i<=100;i++)// {// if(i%3==0)// {//  printf("%d\n",i);// }// }// return0;//}//写代码将三个整数数按从大到小输出//......
  • Delphi模拟鼠标点击
    1var2FindW:HWND;3begin4findw:=FindWindow(nil,'欢迎使用百度网盘');5sendmessage(FindW,messages.WM_LBUTTONDOWN,0,$00250107);6sendmessage(FindW,messages.WM_LBUTTONUP,0,$0015043D);7end; HWNDFindWindow(  LPCTSTRlpClassName, //通过查找窗口......
  • 5.7 Windows驱动开发:取进程模块函数地址
    在笔者上一篇文章《内核取应用层模块基地址》中简单为大家介绍了如何通过遍历PLIST_ENTRY32链表的方式获取到32位应用程序中特定模块的基地址,由于是入门系列所以并没有封装实现太过于通用的获取函数,本章将继续延申这个话题,并依次实现通用版GetUserModuleBaseAddress()取远程进程中......