进程管理实验,任务管理器的进程里的数据怎么解读,都有什么用
进程管理实验,任务管理器的进程里的数据怎么解读,都有什么用详细介绍
本文目录一览: 操作系统管理Linux 系统进程实验报告
什么是进程
比如:windows上安装的QQ,我们会将其称为QQ程序,那么当QQ运行之后,在任务管理器中,我们可以看到QQ程序在运行着,此时,我们称其为:QQ进程。
言简意赅总结:当我们运行一个程序,那么我们将该程序叫进程
注意:1.当程序运行为进程后,系统会为该进程分配内存,以及运行的身份和权限。2.在进程运行的过程中,服务器上回有各种状态来表示当前进程的指标信息。
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
分配内存, 已分配内存的地址空间安全属性, 进程的运行身份和权限进程代码, 运行一个或多个的线程进程状态, 进程运行后的多种状态静态程序, 二进制文件, 静态/bin/ls, /usr/sbin/sshd动态进程, 程序运行的过程, 有生命周期及运行状态
进程的运行环境,包括以下几个部分:
局部和全局变量当前的调度上下文分配给进程使用的系统资源,例如文件描述符、网络端口等给进程分配对应的pid,ppid
程序和进程的区别
1.程序是数据和指令的集合,是一个静态的概念,比如/bin/ls、/bin/cp等二进制文件,同事程序可以长期存在系统中。
2.进程是一个程序的运行过程,是一个动态概念,进程是存在生命周期概念的,也就是说进程会随着程序的终止而销毁,不会永远在系统中存在。
进程的生命周期
?
程序运行时进程的状态关系:
1.当父进程接收到任务调度时,会通过fork派生子进程来处理,那么子进程会集成父进程的衣钵。2.子进程在处理任务代码时,父进程会进入等待的状态...3.如果子进程在处理任务过程中,父进程退出了,子进程没有退出,那么这些子进程就没有父进程来管理了,就变成了僵尸进程。4.每个进程都会有自己的PID号,(process id)子进程则PPID
求代码~操作系统 进程管理实验 语言C++ 要求如下:
Li Hua often plays football
四、实验思路和设计
1、进程管理
(1)程序流程图
由学生自行完成。
(2)主要程序代码
//PCB结构体
struct pcb{
int id; //进程序号
int ra; //所需资源A的数量
int rb; //所需资源B的数量
int rc; //所需资源C的数量
int ntime; //所需的时间片个数
int rtime; //已经运行的时间片个数
char state; //进程状态
struct pcb *next;
} *hready=NULL,*hblock=NULL,*p; //hready,hblock分别为指向就绪和阻塞队列
typedef struct pcb PCB;
int m,n,r,a,b,c,h=0,i=1,time1Inteval; //m为要模拟的进程个数,n为初始化进程个数
//r为可随机产生的进程数(r=m-n)
//a,b,c分别为A,B,C三类资源的总量
//i为进城计数,i=1…n
//h为运行的时间片次数,time1Inteval为时间片大小(毫秒)
//建立一个PCB结构体型的空链表
PCB *increat(void)
{ PCB *head;
head=NULL;
return(head);
}
//从链表起始地址开始输出该链表的内容
void disp(PCB *head)
{PCB *p1;
p1=head;
AnsiString str2;
if(head!=NULL) //链表非空
{
do
{
str2+=" ";
str2+=IntToStr(p1->id);str2+=" ";
str2+=(p1->state);str2+=" ";
str2+=IntToStr(p1->ra);str2+=" ";
str2+=IntToStr(p1->rb);str2+=" ";
str2+=IntToStr(p1->rc);str2+=" ";
str2+=IntToStr(p1->ntime);str2+=" ";
str2+=IntToStr(p1->rtime);str2+="\r\n";
p1=p1->next;
}while(p1!=NULL); //不断输出进程的信息,直到链尾!
} //if
else
{ str2+="\t\t该 队 列 中 没 有 进 程!\r\n" ;}
Form1->Memo1->Lines->Add(str2);
}
//将进程插入到链尾(包括就绪队列和阻塞队列)
PCB *insert(PCB *head,PCB*pcb) //带两个指针形参:队列指针和当前进程PCB
{
PCB *pi,*p1;
p1=head;
pi=pcb;
if (head==NULL)
{
head=pi;
pi->next=NULL;
}
else
{
while(p1->next!=NULL)
{p1=p1->next;}
p1->next=pi;
pi->next=NULL;
}
return(head);
}
//对进程进行初始化,建立就绪队阻塞队列。
void input()
{
AnsiString str1;
m=StrToInt (Form1->Edit1->Text); //读取要模拟的进程总数给m
n=StrToInt (Form1->Edit2->Text); //读取需初始化进程数给n
a=StrToInt (Form1->Edit3->Text); //读取A类资源的总数给a
b=StrToInt (Form1->Edit4->Text); //读取B类资源的总数给b
c=StrToInt (Form1->Edit5->Text); //读取C类资源的总数给c
time1Inteval=StrToInt(Form1->Edit6->Text); //读取时间片长度给time1Inteval
Form1->Timer1->Interval=time1Inteval;
r=m-n; //计算可随机产生的进程数为r
for(i=1;i<=n;i++) //初始化n个进程信息
{
p=getpcb(PCB); // #define getpcb(type) (type*)malloc(sizeof(type))
p->id=i;
str1+=" 产生进程ID:";str1+=IntToStr(p->id);str1+="\r\n";
p->ra=(random(a-3)+3);
str1+=" 所需A类资源数:";str1+=IntToStr(p->ra);str1+="\r\n";
p->rb=(random(b));
str1+=" 所需B类资源数:";str1+=IntToStr(p->ra);str1+="\r\n";
p->rc=(random(c-2)+2);
str1+=" 所需C类资源数:";str1+=IntToStr(p->ra);str1+="\r\n";
p->ntime=(random(5)+1);
str1+=" 所需时间片个数:";str1+=IntToStr(p->ntime);str1+="\r\n";
p->rtime=0;
p->next=NULL;
if (((a-(p->ra))>=0)&&((b-(p->rb))>=0)&&((c-(p->rc))>=0)) //如果资源符合所需要求
{ //则写入就绪队列队尾
a=a-(p->ra); //当前所剩A类资源数目
b=b-(p->rb); //当前所剩B类资源数目
c=c-(p->rc); //当前所剩C类资源数目
p->state='W';
hready=insert(hready,p); //将进程插入就绪队列
}//if
else //如果资源不符合所需要求,则写入阻塞队列队尾
{
p->state='B';
hblock=insert(hblock,p);
} //if
str1+=" 当前进程状态:";
str1+=(p->state);
str1+="\r\n";
str1+="\r\n";
}//for
Form1->Memo1->Lines->Add(str1);
}
//输出就绪队列和阻塞队列的信息
void outputall()
{
AnsiString str1,str2,str3;
str3+="\r\n" ;
str3+="= = = = = = = = = = = = = = = CPU时间片运行了: " ;
str3+=IntToStr(h);
str3+=" 次= = = = = = = = = = = = = = =\r\n";
Form1->Memo1->Lines->Add(str3);
str1+="*********************************当 前 就 绪 队 列 的 信 息" ;
str1+="*********************************\r\n" ;
str1+="进程ID 进程状态 A资源数 B资源数 C资源数 需要时间片 已运行时间片";
Form1->Memo1->Lines->Add(str1);
disp(hready);
str2+="*********************************当 前 阻 塞 队 列 的 信 息";
str2+="*********************************\r\n" ;
str2+="\r\n";
str2+="进程ID 进程状态 A资源数 B资源数 C资源数 需要时间片 已运行时间片";
Form1->Memo1->Lines->Add(str2);
disp(hblock);
}
//运行就绪队列的头进程,运行一个时间片(FCFS),轮转一个时间片
PCB *running(PCB *head)
{
PCB *p1;
p1=head;
AnsiString str4;
If (p1->next==NULL) head=increat();
else {head=p1->next; }
p1->state='R'; //进程状态由就绪转向运行
(p1->rtime)++; //已运行时间片数增加1
h++;
str4+="~~~~~~~~~~~~~~~~ 当前正在运行的进程ID是: ";
str4+=IntToStr(p1->id);
str4+=" ~~~~~~~~~~~~~~~~~~\r\n";
str4+="进程ID 进程状态 A资源数 B资源数 C资源数 需要时间片 已运行时间片\r\n";
str4+=" ";
str4+=IntToStr(p1->id);str4+=" ";
str4+=(p1->state);str4+=" ";
str4+=IntToStr(p1->ra);str4+=" ";
str4+=IntToStr(p1->rb);str4+=" ";
str4+=IntToStr(p1->rc);str4+=" ";
str4+=IntToStr(p1->ntime);str4+=" ";
str4+=IntToStr(p1->rtime);str4+=" ";
Form1->Memo1->Lines->Add(str4);
if(p1->ntime==p1->rtime) //如果已经运行的时间片到达所需次数,该进程结束
{
str4+="\r\n\r\n\t\tID号为:";
str4+=IntToStr(p1->id);
str4+=" 的进程已经完成!!!";
Form1->Memo1->Lines->Add(str4);
a=a+(p1->ra);
b=b+(p1->rb);
c=c+(p1->rc);
free(p1); //释放当前指针
}
else //如果已经运行的时间片未到达所需次数,该进程运行一个时间片后进入就绪队列尾
{
p1->state='W';
head=insert(head,p1);
}
return(head);
}
//检测当前资源数目是否满足阻塞队列里进程的需求
void testblock()
{
PCB *p1,*p2;
p1=hblock;
p2=hblock;
AnsiString str5;
while((hblock!=NULL)&&(p1!=NULL))
{
if((a-(p1->ra)>=0)&&(b-(p1->rb)>=0)&& (c-(p1->rc)>=0)) //如果满足
{if(p1==hblock)
{
hblock=p1->next;
p1->state='W';
hready=insert(hready,p1); //将阻塞的进程插入就绪队列
a=a-(p->ra);
b=b-(p->rb);
c=c-(p->rc);
str5="\tID号为: " ;
str5+=IntToStr(p1->id);
str5+=" 的进程由阻塞队列转入就绪队列!\r\n";
p1=hblock;
} //if(p1==hblock)
else
{p2->next=p1->next;
p1->state='W';
hready=insert(hready,p1);
str5="\tID号为: " ;
str5+=IntToStr(p1->id);
str5+=" 的进程由阻塞队列转入就绪队列!\r\n";
p1=p2->next;
}//else
} //大if
else
{p2=p1;
p1=p1->next;
} //else
Form1->Memo1->Lines->Add(str5);
} //whlie
}
//检测是否有新的进程产生,随机产生新进程
void testnew()
{
int t;
AnsiString str6;
if(r>0) //r=m-n为可随机产生的进程数目
{
t=random(9); //生成随机数
if(t<=7) //如果随机数小于等于7,则产生新进程,否则不产生
{
p=getpcb(PCB);
str6+="有新的进程申请加入:\r\n" ;
p->id=i++; //i为全程变量,表示进程号?
str6+="进程ID:";
str6+=IntToStr(p->id);
str6+="\r\n";
p->ra=(random(a-3)); //随机分配资源
str6+="所需A类资源数:";
str6+=IntToStr(p->ra);
str6+="\r\n";
p->rb=(random(b-3));
str6+="所需B类资源数:";
str6+=IntToStr(p->rb);
str6+="\r\n";
p->rc=(random(c-3));
str6+="所需C类资源数:";
str6+=IntToStr(p->rc);
str6+="\r\n";
p->ntime=(random(5)+1); //随机分配时间片总数
str6+="所需时间片个数:";
str6+=IntToStr(p->ntime);
str6+="\r\n";
p->rtime=0; //已运行时间片数初始为0
p->next=NULL;
if (((a-(p->ra))>=0)&&((b-(p->rb))>=0)&&((c-(p->rc))>=0))
{ //进程满足要求,进入就绪队列
a=a-(p->ra); //分配资源给该进程,总资源数减少
b=b-(p->rb);
c=c-(p->rc);
p->state='w';
str6+="当前进程状态:";
str6+=(p->state);
str6+="\r\n";
hready=insert(hready,p);
str6+="资源满足新进程需求,该进程进入就绪队列!";
}//if
else //进程不满足要求,进入阻塞队列
{
p->state='B';
hblock=insert(hblock,p);
str6+="当前进程状态:";
str6+=(p->state);
str6+="\r\n";
str6+="资源不能满足新进程需求,该进程进入阻塞队列!" ;
}//else
}//if (t<=7)
Form1->Memo1->Lines->Add(str6);
}//if(r>0)
r--;
}
//系统三类资源变化情况的显示
void rescore()
{
if(a>a1) {Form1->Edit7->Text=IntToStr(a1);}
if(a<0) {Form1->Edit7->Text=0;}
if(a>=0&&a
Edit7->Text=IntToStr(a);}
if(b>b1) {Form1->Edit8->Text=IntToStr(b1);}
if(b<0) {Form1->Edit8->Text=0;}
if(b>=0&&b<=b1) {Form1->Edit8->Text=IntToStr(b); }
if(c>c1) {Form1->Edit9->Text=IntToStr(c1);}
if(c<0) {Form1->Edit9->Text=0;}
if(c>=0&&c<=c1) {Form1->Edit9->Text=IntToStr(c); }
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
runFcfs(); //先来先服务(FCFS)调度算法
}
//先来先服务(FCFS)调度算法
void runFcfs()
{
AnsiString str;
if(form1_hready!=NULL) //如果就绪队列为非空,则不断运行,直到就绪队列为空为止
{
outputall(); //输出就绪队列和阻塞队列的信息
form1_hready=running(form1_hready); //将就绪队列的第一个进程运行一个时间片
testblock(); //检查阻塞队列是否有进程可以进入就绪队列
testnew(); //检查是否有新进程产生
rescore() ; //系统三类资源变化情况的显示
}
else
{
Form1->Timer1->Enabled=false;
Form1->Edit7->Text=IntToStr(a1);
Form1->Edit8->Text=IntToStr(b1);
Form1->Edit9->Text=IntToStr(c1);
str+="\r\n\r\n<<<<<<<<<<<<<<
>>>>>>>>>>>>>";
Form1->Memo1->Lines->Add(str);
}
}
//将结果保存成txt文件
void __fastcall TForm1::N8Click(TObject *Sender)
{
if(Form1->SaveDialog1->Execute())
{
FILE* fp=fopen(Form1->SaveDialog1->FileName.c_str(),"w");
if(fp==NULL)
{
MessageBox(NULL,"打开文件出错","信息",MB_OK);
return;
}
for(int i=0;i
Memo1->Lines->Count;i++)
{ fputs(Form1->Memo1->Lines->Strings[i].c_str(),fp);
fputc('\n',fp);
}
fclose(fp);
}
}
//开始模拟按钮单击执行函数
void __fastcall TForm1::Button1Click(TObject *Sender)
{
runmain();
Form1->Button1->Enabled=false;
Form1->Edit1->Enabled=false;
Form1->Edit2->Enabled=false;
Form1->Edit3->Enabled=false;
Form1->Edit4->Enabled=false;
Form1->Edit5->Enabled=false;
Form1->Edit6->Enabled=false;
}
//清除屏幕按钮单击执行函数
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->Memo1->Clear();
Button1->Enabled=true;
h=0;
Form1->Edit1->Enabled=true;
Form1->Edit2->Enabled=true;
Form1->Edit3->Enabled=true;
Form1->Edit4->Enabled=true;
Form1->Edit5->Enabled=true;
Form1->Edit6->Enabled=true;
}
//运行的主函数
void runmain()
{
AnsiString str,str1;
input();
Form1->Timer1->Enabled=true; //触发时钟,调用runFCFS。
str+="\r\n";
}
所>
操作系统课程设计 (包括进程管理、进程的同步和互斥、存储管理)
- 课程设计的计算机操作系统程序
课程概述
计算机操作系统是中央广播电视大学计算机科学与技术专业(本科),系统设置必修课程。教学总时数72.4学分,开设一学期。前课程,计算机组成原理,面向对象编程和数据结构。
计算机操作系统课程是计算机专业的课程,通过学习,使学生掌握电脑作业系统的设计和组成的基本原则之一;计算机操作系统的基本概念和新的概念,术语和术语;了解计算机的发展,操作系统的功能和设计技巧和方法,基本操作使用最常用的计算机操作系统(DOS,Windows,UNIX或Linux)的。
?课程内容
主要内容包括:概述电脑的操作系统,作业管理,文件管理,存储管理,输入输出设备管理,工艺和管理处理器,操作系统结构和编程。
二,系统的教学内容和教学要求
章概述操作系统的中
教学内容:
操作系统的定义和发展形成的操作系统和五个主要类型,操作系统五大功能特性的操作系统的性能,配置的操作系统,“生成”的概念
教学要求:
主:什么是操作系统;知道五类和五功能的操作系统;
至少掌握:掌握操作系统的安装,使用和维护的实际怀抱;
理解:如何理解一个初步的了解,熟悉和解剖学的人机交互界面的操作系统
任务的作业管理
教学内容如下:
的特点,人机界面的发展;操作系统的shell语言的第一,第二和第三代接口的发展特点,基本键盘命令和系统调用任务调度算法; 教学要求:
主的人机界面设计
大师:掌握基本的作业系统人机界面的设计思路;
理解:传统的接口界面
章文件管理的
教学内容:
文件管理任务和功能的操作系统文件的结构和分类的物理结构和逻辑结构的文件,文件目录结构,文件访问控制和安全机制,文件系统模型结构;
教学要求:
水平:基本的文件访问控制和系统管理;
>掌握的文件系统目录分类管理功能;
理解:文件系统的程序设计
的章内部存储管理
教学内容:
内存分区,分页,子段的管理理念;物理地址和逻辑地址内存“扩展”技术;存储管理,支柱存储管理的内存分配算法的
教学的要求:
掌握基本配置:内存管理和调度方法;
主:主不同的分区存储管理,分页和分段方法;
有关:有效利用的内存空间
第五章输入和输出设备管理器的教学内容:
的输入和输出设备的功能分类;独占的,共享的,虚拟装置的管理功能;输入和输出设备的处理程序;管理策略的输入和输出设备;
教学要求:
法师:法师的输入和输出设备的管理特性;
法师:法师分类设计方法的输入和输出设备;
明白了:
编程元素的输入和输出设备处理程序第
教学内容的低级别的处理器管理:
操作系统的核心功能,“过程”的概念,过程的并发和并行的基本状态的转换的过程;进程调度算法进程同步和互斥过程PV操作,“锁”的概念;
教学要求:
大师:在操作系统内核运行的基本概念“过程“;
掌握的基本转换过程中的状态和特征;
理解:操作系统
教学内容,进程调度算法的编程方案的结构
BR />第七章:
操作分层的模块化的系统结构设计和操作系统的测试;的
教学的要求:
本章教学基本要求:了解基本的设计思路和方法现代计算机操作系统
三,教学媒体
本课程使用的教学媒体:文字材料,视频材料,网络教学和辅导。
1。文字材料
计算机操作系统(2)武企业万元清华大学出版社
注:本课程实验的主要教材。
文字教材过程中的主要传播媒介。准备的文字材料,同时保持先进性,科学的学科体系,这两种作业系统的理论,技术,实现了一体化的三个强调的能力。
2。视频教材
该课程16节和视频,每讲50分钟,讲授的课程集中困难,科目汇总。为了帮助学生理解操作系统的整体概念和思想,伍启元教授扬声器。
当然,视频与相应的文字材料,注重艺术表达播放视频教材,教学形象化。
3。
在线教学网上教学和指导,咨询与上述有机介质方面的作用:(1)释放的教学和指导性文件,课程公告,咨询,参考材料;(2)根据工程进度教学,心理咨询聊天室发表的一篇文章“自我测试题(3)实时Q&A,一天到一天的课程论坛Q;(4)开展网上教师培训与教学研讨会。
文字材料的基础上,对学生的学习,视频教科书的补充文字材料,在线咨询是一个方便的教学和学习方式的互动。总之,分工和各种媒体,让学生有更大的自主学习空间,以方便学生自由选择,自主学习,提高学生的自我学习能力。
教学安排建议
当然主要教科书和课程实验教学安排建议
教学点,请根据中央电大统一安排课程,面对面辅导的要求,如表1所示。
表1的主要教科书和课程实验教学安排建议
每周教学内容小时的实验内容推荐小时
操作系统的教学安排概述
2操作系统定义了五种类型, 5 4
三人人机界面管理Linux的实践准备1
四个工作管理任务调度4
五个文件管理的任务和功能的Linux操作系统命令的逻辑结构和物理结构4
7个存储管理任务和功能2命令解释器4
九编制2
八分分配存储管理段4
分配的存储管理作业调度模拟编程的六个文件10设备管理的任务和职能
11种设备,技术和管理存储分配管理设计4
过程的定义和特征4 13进程调度和通信进程调度模拟编程 p> 15操作系统级模块结构僵局的产生和处理14 26 4
(总复习)4
共56条16
课程视频内容,示于表2。
章教学内容表2视频教材课程小时的视频时间分配
操作系统提供了一个概述8小时4
运营管理8小时2
文件管理2
8小时的存储管理8小时
5个设备管理器
6过程管理8小时10小时4
7操作系统的系统程序结构6小时0
56小时16
2在线咨询在线咨询内容
包括教学文件,课程辅导,网络教室。充分利用网络资源,和偶尔的在线课程相关的辅导材料,定期,根据教学在线辅导和考试Q&A活动,适当安排的需要。具体安排如下:
?
包括课程介绍,教师,教学大纲,教学设计,教学档案。
?课程辅导
包括课程学习和答案,专题辅导,习题和答案,自我测试,评估说明,网上还提供了教师讲课教案教学点的教学使用。
?网络课堂
包括直播课堂和IP课件。
基于网络的教学活动:中央广播电视大学一般集中在每学期安排的实时在线辅导学生,教师的教学和研究活动。具体的时间表,每学期上发布的TVU的网上家园。
?论坛:每天的日常应答的过程中。
课程的课堂直播第一学期,通过教育电视台播出,安排四次直播课堂,每次50分钟。的第一堂课3个教学点,难点的教学和演讲后代表咨询审查的辅导和考试说明的过程中反映的共性问题。直播课堂挂在网页上的内容。
工作
课程形成性评估书,当然工作量。工作成绩计入课程成绩。中央电大的工作,不时抽查,检查审查和完成作业。
课程考试,请参阅“中央广播电视大学计算机操作系统课程评估的指示。建议
五,教学方法?教学建议
(1)计算机操作系统是一个实用的课程。其特点是概念多,涉及范围广。要求教学辅导深和混乱的概念来进行详细说明,并详细描述每章的重点,管理和控制的调度算法技能。
(2)注重培养学生熟悉的操作系统,以及在维护操作系统的问题进行分析,并在实验中解决问题的能力。
?建议
(1)从宏观和微观把握学习操作系统。在宏观上,要认识到在计算机系统中的操作系统的地位清除操作系统的整体结构;微观方面应把握的操作系统是管理计算机资源(过程中,处理器,内存,文件,设备),了解概念,原理和技术。
(2)操作系统是计算机技术和管理技术相结合的联想日常生活学习重复熟悉的样品管理实现运营系统的管理方法,以加深对问题的理解。
(3)要注意加强自我学习的能力,有能力实现这一目标的“学习”的文化。
如何使用Python的Supervisor来管理进程
在python开发中,如何使用supervisor来管理进程呢?Supervisor是什么?Supervisor是如何管理进程的,现在就跟随小编一起来看看使用python的supervisor管理经常的方法。
Supervisor可以启动、停止、重启*nix系统中的程序。也可以重启崩溃的程序。
supervisord的一个守护进程,用于将指定的进程当做子进程来运行。
supervisorctl是一个客户端程序,可以查看日志并通过统一的会话来控制进程。
看例子:
我们写了一个py脚本,用于往log文件中记录一条当前的时间。
[python]view plaincopy
1.root@ubuntu:/home/zoer#catdaemon.py
2.#!/usr/bin/envpython
3.
4.importtime
5.importos
6.time.sleep(1)
7.f=open("log",'a')
8.t=time.time()
9.f.write(str(t))
10.f.write("\n")
11.f.close()
安装过程就不说了。
安装完毕supervisor之后【将配置文件放在/etc下】。修改配置文件,在最后增加如下内容:
[program:ddd]
command=/home/zoer/daemon.py
autorestart=true
然后我们启动supervisor并启动daemon.py的执行。
[python]view plaincopy
1.root@ubuntu:/home/zoer#supervisord
2./usr/local/lib/python2.7/dist-packages/supervisor-3.0b1-py2.7.egg/supervisor/options.py:286:UserWarning:Supervisordisrunningasrootanditissearchingforitsconfigurationfileindefaultlocations(includingitscurrentworkingdirectory);youprobablywanttospecifya"-c"argumentspecifyinganabsolutepathtoaconfigurationfileforimprovedsecurity.
3.'Supervisordisrunningasrootanditissearching'
4.root@ubuntu:/home/zoer#supervisorctl
5.dddSTARTING
6.supervisor>startddd
7.ddd:ERROR(alreadystarted)
8.supervisor>stopddd
9.ddd:stopped
10.supervisor>startddd
11.ddd:started
12.supervisor>
从上面的例子中,看到,可以通过start或者stop命令来启动或者停止ddd这个进程。ddd这里就是我们在配置文件中增加的内容(daemon.py这个脚本)。
也可以使用restart。如下:
supervisor> restart ddd
ddd: stopped
ddd: started
-------------------------------------------------------
下面我们测试一下,假设说我们手动kill掉了ddd这个进程,那么ddd会自动恢复执行吗?
为了做实验,把代码修改如下:
[python]view plaincopy
1.root@ubuntu:/home/zoer#catdaemon.py
2.#!/usr/bin/envpython
3.
4.importtime
5.importos
6.whileTrue:
7.time.sleep(1)
8.f=open("log",'a')
9.t=time.time()
10.f.write(str(t))
11.f.write("\n")
12.f.close()
通过ps可以找到这个进程的id:
[plain]view plaincopy
1.root93540.20.4109244200?S23:160:00python/home/zoer/daemon.py
2.root93950.00.04392832pts/3S+23:170:00grep--color=autodaemon
3.root@ubuntu:/home/zoer#
看下面的操作:
[plain]view plaincopy
1.root@ubuntu:/home/zoer#rmlog;touchlog;kill9354
2.root@ubuntu:/home/zoer#catlog
3.1364710712.51
4.root@ubuntu:/home/zoer#catlog
5.1364710712.51
6.1364710713.51
7.root@ubuntu:/home/zoer#catlog
8.1364710712.51
9.1364710713.51
10.root@ubuntu:/home/zoer#catlog
11.1364710712.51
12.1364710713.51
13.1364710714.52
14.root@ubuntu:/home/zoer#catlog
15.1364710712.51
16.1364710713.51
17.1364710714.52
18.1364710715.52
删除了log文件,并且重新创建。然后干掉了daemon.py的那个进程。会发现log内容又重新有新的内容了。再次ps查看进程号。
[plain]view plaincopy
1.root94290.10.4109244200?S23:180:00python/home/zoer/daemon.py
2.root94400.00.04392828pts/3S+23:190:00grep--color=autodaemon
3.root@ubuntu:/home/zoer#
会发现进程号已经变成9429了。说明supervisor已经重启了被干掉了的进程。
一、实验目的 1.掌握任务管理器的使用方法。 2.了解虚拟内存大小的设置及其对程序运行效率的影响。 二、
阿四大四大的三大阿斯达说的
.
1.启动 Word、 Excel 和 IE 等应用程序
(1)观察说明所启动应用程序的进程信息
① 要启动新的应用程序, 在“Windows 任务管理器”窗口中选择“应用程序”选项卡。
② 单击“新任务”命令按钮, 出现“创建新任务”对话框, 如图 2-11 所示。
③ 在“打开”的下拉列表框中输入或选择要启动的应用程序名, 或通过“浏览”按钮查找要执行的应用程序名, 来启动新的应用程序。
(2)返回到 Word 和 Excel 中操作一段时间,观察说明对应的进程信息的变化情况
进程信息的变化情况
每一个运行的程序都有对应的进程在内存中运行。在 Windows XP 中, 可以通过任务管理器查看或终止正在运行的进程。终止了进程,也就终止了对应的应用程序的运行。要观察正在运行的进程, 在“Windows 任务管理器”窗口中选择“进程”选项卡。该选项卡中显示正在运行的进程名、进程ID、CPU 及内存使用情况等, 如图2-12所示。要终止正在运行的进程, 在进程选项卡中选择该进程, 单击“结束进程”命令按钮, 便关闭该应用程序窗口。
(3)删除Word、Excel和IE 进程, 再观察说明进程信息的变化情况
删除Word、Excel和IE 进程后,进程信息变化有一个不小的影响,进程信息的运行速度会变慢
2.描述启动多个进程之后以及减小虚拟内存之后程序运行速度的变化情况
系统中的每一个进程都有自己的虚拟地址空间。这些虚拟的地址空间是相互完全分离的,所以运行一个应用程序的进程不会影响另外的进程。另外,硬件的虚拟内存机制答应对内存区写保护。这可以防止代码和数据被恶意的程序覆盖。
硬盘中有一个很宠大的数据交换文件,它是系统预留给虚拟内存作暂存的地方,很多应用程序都经常会使用到,所以系统需要经常对主存储器
作大量的数据存取,因此存取这个档案的速度便构成影响计算机快慢的非常重要因素!一般Windows预设的是由系统自行管理虚拟内存,它会因
应不同程序所需而自动调校交换档的大小,但这样的变大缩小会给系统带来额外的负担,令系统运作变慢!有见及此,用户最好自定虚拟内存
的最小值和最大值,避免经常变换大小。要设定虚拟内存,在"我滴电脑"上按右键选择"属性",在"高级"选项里的"效能"的对话框中
有些程序在电脑系统启动会时使系统变慢。如果要是否是这方面的原因,我们可以从"安全模式"启动。因为这是原始启动,"安全模式"运
行的要比正常运行时要慢。但是,如果你用"安全模式"启动发现电脑启动速度比正常启动时速度要快,那可能某个程序是导致系统启动速度
变慢的原因
求代码~操作系统 进程控制实验 语言C++ 要求如下
代码很简单的,其实就是考查出队入队的队列应用。
创建进程入队、结束进程出队、进程阻塞入队、激活进程出队、调度进程入队出队、时间片到入队出队。
linux内核主要由哪几个部分组成
一个完整的Linux内核一般由5部分组成,它们分别是内存管理、进程管理、进程间通信、虚拟文件系统和网络接口。
1、内存管理 内存管理主要完成的是如何合理有效地管理整个系统的物理内存,同时快速响应内核各个子系统对内存分配的请求。
Linux内存管理支持虚拟内存,而多余出的这部分内存就是通过磁盘申请得到的,平时系统只把当前运行的程序块保留在内存中,其他程序块则保留在磁盘中。在内存紧缺时,内存管理负责在磁盘和内存间交换程序块。
2、进程管理 进程管理主要控制系统进程对CPU的访问。当需要某个进程运行时,由进程调度器根据基于优先级的调度算法启动新的进程。:Linux支持多任务运行,那么如何在一个单CPU上支持多任务呢?这个工作就是由进程调度管理来实现的。
在系统运行时,每个进程都会分得一定的时间片,然后进程调度器根据时间片的不同,选择每个进程依次运行,例如当某个进程的时间片用完后,调度器会选择一个新的进程继续运行。
由于切换的时间和频率都非常的快,由此用户感觉是多个程序在同时运行,而实际上,CPU在同一时间内只有一个进程在运行,这一切都是进程调度管理的结果。
3、进程间通信 进程间通信主要用于控制不同进程之间在用户空间的同步、数据共享和交换。由于不用的用户进程拥有不同的进程空间,因此进程间的通信要借助于内核的中转来实现。
一般情况下,当一个进程等待硬件操作完成时,会被挂起。当硬件操作完成,进程被恢复执行,而协调这个过程的就是进程间的通信机制。
4、虚拟文件系统 Linux内核中的虚拟文件系统用一个通用的文件模型表示了各种不同的文件系统,这个文件模型屏蔽了很多具体文件系统的差异,使Linux内核支持很多不同的文件系统。
这个文件系统可以分为逻辑文件系统和设备驱动程序:逻辑文件系统指Linux所支持的文件系统,例如ext2、ext3和fat等;设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。
5、网络接口 网络接口提供了对各种网络标准的实现和各种网络硬件的支持。网络接口一般分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。
网络设备驱动程序则主要负责与硬件设备进行通信,每一种可能的网络硬件设备都有相应的设备驱动程序。
扩展资料:
Linux 操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU计划、POSIX 标准和Internet 网络。
1981 年IBM公司推出微型计算机IBM PC。
1991年,GNU计划已经开发出了许多工具软件,最受期盼的GNU C编译器已经出现,GNU的操作系统核心HURD一直处于实验阶段,没有任何可用性,实质上也没能开发出完整的GNU操作系统,但是GNU奠定了Linux用户基础和开发环境。
1991年初,林纳斯·托瓦兹开始在一台386sx兼容微机上学习minix操作系统。1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统。
1991 年4 月13 日在comp.os.minix 上发布说自己已经成功地将bash 移植到了minix 上,而且已经爱不释手、不能离开这个shell软件了。
1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux 0.99的代码大约有十万行,用户大约有10万左右。
1994年3月,Linux1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。
1995年1月,Bob Young创办了RedHat(小红帽),以GNU/Linux为核心,集成了400多个源代码开放的程序模块,搞出了一种冠以品牌的Linux,即RedHat Linux,称为Linux"发行版",在市场上出售。这在经营模式上是一种创举。
2001年1月,Linux 2.4发布,它进一步地提升了SMP系统的扩展性,同时它也集成了很多用于支持桌面系统的特性:USB,PC卡(PCMCIA)的支持,内置的即插即用,等等功能。
2003年12月,Linux 2.6版内核发布,相对于2.4版内核2.6在对系统的支持都有很大的变化。
2004年的第1月,SuSE嫁到了Novell,SCO继续顶着骂名四处强行“化缘”, Asianux, MandrakeSoft也在五年中首次宣布季度赢利。3月,SGI宣布成功实现了Linux操作系统支持256个Itanium 2处理器。
任务管理器的进程里的数据怎么解读,都有什么用
分类: 电脑/网络 >> 反病毒
问题描述:
任务管理器的进程里的数据怎么解读,都有什么用?详细点哦
解析:
Win2000/XP 的任务管理器是一个非常有用的工具,它能提供我们很多信息,比如现在系统中运行的程序(进程),但是面对那些文件可执行文件名我们可能有点茫然,不知道它们是做什么的,会不会有可疑进程(病毒,木马等)。本文的目的就是提供一些常用的Win2000/XP 中的进程名,并简单说明它们的用处。
在W2K/XP中,同时按下crtl+shift+Esc键,可以打开Windows任务管理器,单击“进程”,可以看到很多正在运行的进程,仔细看看有很多奇怪的EXE文件在运行?下面这些并不是真正的服务,而是在不同情况下运行的程序或进程,很多还是必需的进程。
【Csrss】:这是Windows的核心部份之一,全称为Client Server Process。我们不能结束该进程。这个只有4K的进程经常消耗3MB到6MB左右的内存,建议不要修改此进程,让它运行好了。
【Ctfmon】:这是安装了WinXP(尤其是安装ofice XP)后,在桌面右下角显示的“语言栏”,如果不希望它出现,可通过下面的步骤取消:双击“控制面板”,“区域和语言设置”,单击“语言”标签,单击“详细信息”按钮,打开“文字服务和输入语言”对话框,单击下面“首选项”的“语言栏”按钮,打开“语言栏设置”对话框,取消“在桌面上显示语言栏”的勾选即可。不要小看这个细节,它会为你节省1.5MB到4MB的内存。
【dovldr32】:如果你有一个Creative SBLive系列的声卡,就可能击现这个进程,它占用大约2.3MB到2.6MB的内存。有些奇怪的是,当我从任务栏禁止了这个进程后,通过DVD实验,并没有发生任何错误。但如果你将这个文件重新命名了,就会出现windows的文件保护警告窗口,而且Creative Mixer和AudioHQ程序加载出错。当然你希望节省一些内存,那么可以将它禁止。
【explorer】:这可不是Inter Explorer,explorer.exe总是在后台运行,它控制着标准的用户界面、进程、命令和桌面等,如果打开“任务管理器”,就会看到一个explorer.exe在后台运行。根据系统的字体、背景图片、活动桌面等情况的不同,通常会消耗5.8MB到36MB内存不等。
【Ldle】:如果你在“任务管理器”看到它显示99%的占用率,千万不要害怕,实际上这是好事,因为这表示你的计算机目前有99%的性能等待你使用!这是关键进程,不能结束。该进程只有16KB的大小,循环统计CPU的空闲度。
【IEXPLORE】:这才是IE浏览器。当我们用它上网冲浪时,它占有7.3MB甚至更多的内存。当然,这个随着打开的浏览器窗口的增加而增多。但当关闭所有IE窗口时,它并不会从任务管理器消失,IEXPLORE.EXE依然在后台运行着,它的作用是加快我们再一次打开IE的速度。
【Generic Host Process for Win32 Services】:如果你安装了ZoneAlarm以后,在连接Inter时ZonAlarm总是抱怨链接不到Inter,那么你就应该好好看看下面的文字。Svhost.exe就是Generic Service Host,意思就是说,它是其他服务的主机。如果你的Inter连接不工作了,很有可能是你禁止了一些必须的服务,比如如果你禁止了“DNS搜索”功能,那么当你输入cfan时就不会连接上网,但如果输入IP地址,尽管还是可以上网,但实际上你已经破坏了上网冲浪的关键进程!
【m *** sgs】:这是微软的Windows Messengr(即时通信软件)著名的MSN进程,在WinXP的家庭版和专业版里面绑定的,如果你还运行着Outlook和MSN Explorer等程序,该进程会在后台运行支持所有这些微软号称的很Cool的,NET功能等新技术。
【msn6】:这是微软在WinXP里面绑定的MSN Explorer (MSN浏览器)进程,该进程需要m *** sgs.exe事先运行。
【Navpw32】:这是安装了Norton AntiVirus2002 软件后启动的进程,除非你不需要病毒检测功能了,否则不要结束这个进程,这个进程同时还承担着自动升级病毒定义库文件的功能和在系统任务栏显示一个小图标的功能。
【Point32】:这是安装了特殊的鼠标软件(Intellimouse等等)后启动的等程序,由于在WinXP里面内建了很多鼠标新功能,所以,就没有必要在系统后台运行,既浪费1.1MB到1.6MB的内存,还要在任务栏占个地方!
【Promon】:这是Intel系列显卡安装的程序,在任务栏显示图标控制程序,占据大约656KB到1.1MB的内存。
【Smss】:只有45KB的大小却占据着300KB到2MB的内存空间,这是一个Windows的核心进程之一,是windows NT内核的会话管理程序。
【Svchost】:这实际上是一个服务(service),有时你会经常在“任务管理器”里看到好几个一样的该进程(分别掌管着system ,neork,user或者其他),在windows XP里面,如果你结束了这个进程,那么系统就会在一分钟之内自动关闭,在windows 2000中,该进程将显示为关键进程,禁止结束!
【System IDLE Process】:这是一个当没有任何程序或者进程对CPU发出请求的时候调用的普通进程,该进程不能被结束,如果它显示CPU占用率是97%,那就意味着只有3%的CPU进程被真正的程序占用着,如果你发现这个ldle processes一直保持很低的数值(比如一直显示3%),那么肯定有一个应用程序一直在运行着,需要检查一下!
【taskmgr】:如果你看到了这个进程在运行,其实就是看这个进程的“任务管理器”本身。它大约占用了3.2MB的内存,当你优化系统时,不要忘了把它也算进去。
【Vptray】:这是Norton AV显示在任务栏的一个图标的进程,占用大约2.9MB左右的内存如果我们从任务栏将这个图标移走,能够收回一些内存,但是实际上它还在后台运行着。
【Winlogon】:这个进程处理登录和注销任务,事实上,这个进程是必需的,它的大小和你登录的时间有关系,我曾亲眼看见这个进程占用空间的波动情况,一个是登录一个小时左右,内存在1.7MB到8.5MB之间波动;另一个登录了40多天,内存在1.7MB到17MB之间波动。
【Wowexec】:当你运行一些老的应用程序(比如一些16位的程序)或者DOS控制台下运行DOS命令行程序,你就会在进程里面发现它。
【TaskSwitch】:在XP系统中安装了powerToys后会出现此进程,按Alt+Tab键显示切换图标,大约占用1.4MB到2MB的内存空间。
【在 WIN2000/XP 中,系统包含以下缺省进程】:
Csrss.exe
Explorer.exe
Internat.exe
Lsass.exe
Mstask.exe
Smss.exe
Spoolsv.exe
Svchost.exe
Services.exe
System
System Idle Process
Taskmgr.exe
Winlogon.exe
Winmgmt.exe
【下面列出更多的进程和它们的简要说明】
进程名描述
*** ss.exeSessionManager
csrss.exe 子系统服务器进程
winlogon.exe管理用户登录
services.exe包含很多系统服务
lsass.exe 管理IP安全策略以及启动ISAKMP/Oakley(IKE)和IP安全驱动程序
svchost.exe Windows 2000/XP 的文件保护系统
SPOOLSV.EXE 将文件加载到内存中以便迟后打印
explorer.exe资源管理器
internat.exe托盘区的拼音图标
mstask.exe允许程序在指定时间运行。
regsvc.exe允许远程注册表操作。(系统服务)->remoteregister
winmgmt.exe 提供系统管理信息(系统服务)
iinfo.exemsftpsvc,w3svc,iisadmn
tlntsvr.exe tlnrsvr
tftpd.exe 实现 TFTP Inter 标准。该标准不要求用户名和密码
termsrv.exe termservice
dns.exe 应答对域名系统(DNS)名称的查询和更新请求
tcpsvcs.exe 提供在PXE可远程启动客户计算机上远程安装2000 Professional的能力
i *** serv.exe 允许在 Windows Advanced Server 站点间发送和接收消息
ups.exe 管理连接到计算机的不间断电源(UPS)
wins.exe 为注册和解析 NetBIOS 型名称的TCP/IP客户提供NetBIOS名称服务
llssrv.exe 证书记录服务
ntfrs.exe 在多个服务器间维护文件目录内容的文件同步
RsSub.exe 控制用来远程储存数据的媒体
locator.exe 管理 RPC 名称服务数据库
lserver.exe 注册客户端许可证
dfssvc.exe 管理分布于局域网或广域网的逻辑卷
clipsrv.exe 支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页面
msdexe 并列事务,是分布于两个以上的数据库,消息队列,
文件系统或其它事务保护资源管理器。
faxsvc.exe 帮助您发送和接收传真。
cisvc.exe 索引服务
madmin.exe 磁盘管理请求的系统管理服务。
mnmsrvc.exe 允许有权限的用户使用 NetMeeting 远程访问 Windows 桌面。
dde.exe 提供动态数据交换 (DDE) 的网络传输和安全特性。
*** logsvc.exe 配置性能日志和警报。
rsvp.exe 为依赖质量服务(QoS)的程序和控制应用程序提供网络信号
和本地通信控制安装功功能。
RsEng.exe 协调用来储存不常用数据的服务和管理工具。
RsFsa.exe 管理远程储存的文件的操作。
grovel.exe 扫描零备份存储(SIS)卷上的重复文件,并且将重复文件指向一个数据存储点,
以节省磁盘空间(只对NTFS文件系统有用)
SCardSvr.ex 对插入在计算机智能卡阅读器中的智能卡进行管理和访问控制。
snmp.exe 包含代理程序可以监视网络设备的活动并且向网络控制台工作站汇报。
snmptrap.exe 接收由本地或远程SNMP代理程序产生的陷阱(trap)消息,然后将消息传递到
运行在这台计算机上 SNMP 管理程序。
UtilMan.exe 从一个窗口中启动和配置辅助工具。
msiexec.exe 依据.MSI文件中包含的命令来安装、修复以及删除软件。
在BOIS里面关掉CPU的超线程功能会影响电脑速度吗?
我觉得开着超线程功能会影响速度,因为软件支持的不好
不确定时,默认为好!
超线程就是个垃圾
我有做过这个实验
我的CPU是P4 3.0E
当我关掉HT时开机速度很快
运行单个程序也很快
但是要是同时运行多个程序的话就开始卡了
打开进程管理CPU使用率就上到100%
当我打开HT之后开机比原来的慢
不是太多但能感觉得到
其他一切与没开HT时一样
就是在多运行了几个程序之后打开进程管理
发现CPU使用率没有满而且十分流畅
你常要运行3DMAX这是一个需要多程序的运行的软件
所以多核CPU运行它是有优势的
因此建议你打开超线程