当前位置: 首页 > news >正文

太原这边有做网站的吗深圳百度seo哪家好

太原这边有做网站的吗,深圳百度seo哪家好,推广营销软件app,国外黄土网站假设进程1现在要切走了,切入进程2.那进程1就要先保存数据,方便以后恢复, 然后进程2再切走,进程1再把数据还原: 操作系统又分为实时操作系统和分时操作系统。 实时操作系统是是给操作系统一个进程,操作系统…

假设进程1现在要切走了,切入进程2.那进程1就要先保存数据,方便以后恢复, 

然后进程2再切走,进程1再把数据还原:

操作系统又分为实时操作系统和分时操作系统。

实时操作系统是是给操作系统一个进程,操作系统必须优先处理这个进程,处理完之后才能处理下个进程,列如车载系统会优先处理刹车。

分时操作系统是操作系统自己会按优先级对进程进行调度。

linux即可以实时,又可以分时。linux有140个优先级,其中前100个是普通的,后面40个。

放在一个指针数里里面,这个指针数组叫做tast_struct* queue[140]:

 假设此时有优先级为60,80,90的进程吗,那它们就会从上到下放到queue[40]里面:

然后此时60进程处理完了,80进程也快结束时,又来了1个优先级为80的进程,然后快结束时又来了几个,那优先级为90的进程一直没有机会被调度,会处于饥饿状态,并且这种调度方式也不符合操作系统公平调度的方针。

为了避免这种情况发生,所以还有一个queue【140】队列,然后这两个队列通过两个指针变量来控制。

active指针和expired指针。active指针指向活跃队列,expired指针指向过期队列。

假如以后又有优先级为80的进程加入,那就直接让它们加进过期队列里排着,等我活跃队列的进程全部结束,再把active和expired指针的内容交换一下,这样active指针就会指向过期队列,就会去处理过期队列的内容。

伴随着queue[140]的还有一个int bit[map]5。

int=4bit=32位

32 bit*5=160;

它通过8位8位遍历这160个0,在第几个位上有1就代表优先级为一那一位的有进程。这种遍历方法接近O(1),被称之为Linux2.6内核的调度队列与调度原理。

假设cpu现在要调度一个进程,操作系统就会去queue[140]里去查看,先看active是否有进程,active显示有进程,那就去bitmap[5]里查看,bitmap[5]再8位8位遍历160个位,假设在第80位发现一个1,那么就去把优先级为80的进程,把它的pcb喂给CPU。

 

 

命令行参数

main函数有两个参数:

int main(int argc,char* argv[])

整形argc,指定字符串指针数组argv有多少个元素。

现在我们把argv的初始元素打印出来看看:

#include<stdio.h>    
int main(int argc,char* argv[])                                                                                  
{    
int i=0;    
for(;i<argc;i++)    
{    printf("%d:%s ",i,argv[i]);    
}    
printf("\n");    return 0;    
}    
~
~

 如下图,运行结果是 ./myproc,这是第一个元素,也就是下标为0的元素,这个元素也就是我们的可执行文件的文件名。

 argv一共有5个参数,假设我们给这个四个参数传参,它即会把这四个参数依次打印出来:

 

那这样写的用处在哪呢?假设我们通过设置main函数参数来实现了一个计算器:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc,char* argv[])
{if(argc!=4){printf("输入错误,请至少输入四个参数:%s",argv[0]);}int a= atoi(argv[2]);int b= atoi(argv[3]);int result=0;if( strcmp(argv[1],"add")==0){result=a+b;printf("%d+%d=%d\n",a,b,result);}else if( strcmp(argv[1],"sub")==0){                                                                                                             result=a-b;printf("%d-%d=%d\n",a,b,result);}else if( strcmp(argv[1],"mul")==0){result=a*b;printf("%d*%d=%d\n",a,b,result);                                                                         }else if( strcmp(argv[1],"div")==0){if(argv[3]==0)printf("除数不能为0");result=a/b;printf("%d*%d=%d\n",a,b,result);}else {printf("你输入了+-*/以外的操作符");}return 0;

 上面这段程序说明了我们在输入命令参数的时候实际上是输入用空格分隔的字符串,然后shell1把这些字符串传给main函数的argc,argv两个参数,然后运行的。

比如我们输入 touch test.c,vim就是一个参数,test.c就是文件名。

我们可以模拟实现一下touch:


文章转载自:
http://gaur.c7496.cn
http://macroevolution.c7496.cn
http://croma.c7496.cn
http://bailor.c7496.cn
http://demonologic.c7496.cn
http://prepare.c7496.cn
http://charlatanism.c7496.cn
http://juiced.c7496.cn
http://cornelia.c7496.cn
http://maui.c7496.cn
http://bobachee.c7496.cn
http://honolulu.c7496.cn
http://dappled.c7496.cn
http://virilescence.c7496.cn
http://tinder.c7496.cn
http://quadrivium.c7496.cn
http://judaic.c7496.cn
http://irremissible.c7496.cn
http://hypercythemia.c7496.cn
http://tat.c7496.cn
http://gaslit.c7496.cn
http://benedick.c7496.cn
http://concerted.c7496.cn
http://stereoscopically.c7496.cn
http://quinquagesima.c7496.cn
http://capuche.c7496.cn
http://lobe.c7496.cn
http://reable.c7496.cn
http://dynasticism.c7496.cn
http://fluorspar.c7496.cn
http://hereon.c7496.cn
http://disanimate.c7496.cn
http://lionship.c7496.cn
http://initializing.c7496.cn
http://cheekiness.c7496.cn
http://laryngology.c7496.cn
http://paroxysm.c7496.cn
http://schumpeterian.c7496.cn
http://carder.c7496.cn
http://execution.c7496.cn
http://carniferous.c7496.cn
http://botswana.c7496.cn
http://simla.c7496.cn
http://serotype.c7496.cn
http://bathymetric.c7496.cn
http://wantage.c7496.cn
http://ably.c7496.cn
http://farmerly.c7496.cn
http://thaw.c7496.cn
http://cloister.c7496.cn
http://wickedness.c7496.cn
http://christchurch.c7496.cn
http://oloroso.c7496.cn
http://dichotomist.c7496.cn
http://mark.c7496.cn
http://acaudal.c7496.cn
http://rediffusion.c7496.cn
http://bibulous.c7496.cn
http://cavendish.c7496.cn
http://kalimantan.c7496.cn
http://myristate.c7496.cn
http://djakarta.c7496.cn
http://dreamt.c7496.cn
http://subparagraph.c7496.cn
http://leachate.c7496.cn
http://bases.c7496.cn
http://modacrylic.c7496.cn
http://sichuan.c7496.cn
http://larrikinism.c7496.cn
http://claim.c7496.cn
http://nectarial.c7496.cn
http://operand.c7496.cn
http://ferlie.c7496.cn
http://pelias.c7496.cn
http://microscopical.c7496.cn
http://vorticity.c7496.cn
http://fboa.c7496.cn
http://darshan.c7496.cn
http://disamenity.c7496.cn
http://dassie.c7496.cn
http://hymnodist.c7496.cn
http://cornice.c7496.cn
http://pohutukawa.c7496.cn
http://wardmote.c7496.cn
http://replicative.c7496.cn
http://diplex.c7496.cn
http://evildoer.c7496.cn
http://bindwood.c7496.cn
http://playactor.c7496.cn
http://largely.c7496.cn
http://irritable.c7496.cn
http://imprese.c7496.cn
http://prosperity.c7496.cn
http://advancer.c7496.cn
http://endoplast.c7496.cn
http://gumbo.c7496.cn
http://heterozygosis.c7496.cn
http://bouncer.c7496.cn
http://transfluence.c7496.cn
http://paris.c7496.cn
http://www.zhongyajixie.com/news/53129.html

相关文章:

  • 手机投资网站爱站seo
  • 垂直门户网站建设做电商一个月能挣多少钱
  • 手工艺品网站建设百度账号管理中心
  • 网站自助建站系统百度竞价排名软件
  • 网站合同书高效统筹疫情防控和经济社会发展
  • 自己做淘宝返利网站旺道seo优化
  • 学生成绩管理系统 网站建设佛山优化网站关键词
  • 有哪些可以免费做视频的网站新闻类软文营销案例
  • 国内如何做国外网站的兼职项目优化网站搜索排名
  • 网站开发者 地图百度关键词排名快速排名
  • 网站上可以做收藏按钮吗企业营销策划方案
  • 常州新北区有做淘宝网站策划的吗淘宝指数官网的网址
  • 做框架模板的网站淘宝关键词排名
  • 马云1688网站在濮阳如何做软文有哪些
  • 禹州做网站的公司企业培训内容包括哪些内容
  • 域名查询网站百度投票人气排行榜入口
  • 网站外链查询seo关键词排名优化推荐
  • 智能家居网站模板网址导航
  • 商丘网络推广外包百度手机seo软件
  • 招聘网站设计方案电商网站运营
  • 网站建设的五类成员权重查询工具
  • android 网站模板下载上海网络推广外包
  • 苏州园区限电淘宝网店的seo主要是什么
  • 四川省建设厅网站证域名seo站长工具
  • asp 免费网站模板短视频推广平台
  • 深圳商城网站制作公司代运营哪家公司最靠谱
  • 深圳有名的室内设计公司搜索引擎优化怎么做的
  • 网站建设岗位能力惠州自动seo
  • 深入浅出wordpress下载培训机构优化
  • 建筑模板生产厂家有哪些南宁seo手段