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

服装网站建设费用长春今日头条新闻

服装网站建设费用,长春今日头条新闻,专业的网站首页建设公司,酷家乐网站做墙裙教程目录 一、寄存器 二、Linux2.6内核进程调度队列 (一)优先级 (二)活动队列 (三)过期队列 (四)active指针和expired指针 三、命令行参数 (一)举例一 &…

目录

一、寄存器

二、Linux2.6内核进程调度队列

(一)优先级

(二)活动队列

(三)过期队列

(四)active指针和expired指针

三、命令行参数

(一)举例一

(二)举例二

四、环境变量

(一)基本概念

(二)常见环境变量

(三)查看环境变量方法

(四)测试PATH

(五)和环境变量相关的命令

(六)通过系统调用获取或设置环境变量


一、寄存器

  • eax寄存器:主要作用是用于存放函数的返回值,同时也用于存放一些临时数据和进行算术运算
int Function() {int result = 42;return result;
}

eax 寄存器将会存放返回值 42

  • eip 寄存器,它存储了当前正在执行的指令的内存地址,也就是程序计数器
  • 各个进程在CPU寄存器中形成的临时数据称为进程的上下文

二、Linux2.6内核进程调度队列

  • 如果有多个CPU就要考虑进程个数的负载均衡问题

(一)优先级

  • 普通优先级:100~139(我们都是普通的优先级,想想nice值的取值范围,可与之对应!)
  • 实时优先级:0~99(不关心) 

(二)活动队列

  • 时间片还没有结束的所有进程都按照优先级放在该队列
  • nr_active: 总共有多少个运行状态的进程
  • queue[140]: 一个元素就是一个进程队列,相同优先级的进程按照FIFO规则进行排队调度,所以,数组下标就是优先级
  • 从该结构中,选择一个最合适的进程,过程是怎么的呢?
  1. 从0下表开始遍历queue[140]
  2. 找到第一个非空队列,该队列必定为优先级最高的队列
  3. 拿到选中队列的第一个进程,开始运行,调度完成!
  4.  遍历queue[140]时间复杂度是常数!但还是太低效了!
  • bitmap[5]:一共140个优先级,一共140个进程队列,为了提高查找非空队列的效率,就可以用5*32个
  • 比特位表示队列是否为空,这样,便可以大大提高查找效率

(三)过期队列

  • 过期队列和活动队列结构一模一样
  • 过期队列上放置的进程,都是时间片耗尽的进程
  • 当活动队列上的进程都被处理完毕之后,对过期队列的进程进行时间片重新计算

(四)active指针和expired指针

  • active指针永远指向活动队列
  • expired指针永远指向过期队列
  • 可是活动队列上的进程会越来越少,过期队列上的进程会越来越多,因为进程时间片到期时一直都存在的。
  • 没关系,在合适的时候,只要能够交换active指针和expired指针的内容,就相当于有具有了一批新的活动进程

 

三、命令行参数

(一)举例一

#include<stdio.h>    
int main(int argc, char *argv[])    
{    int i = 0;    for(;i<argc;i++)                                                                                                          {    printf("%d: %s\n",i,argv[i]);    }    return 0;    
}
  • argc(argument count)表示传递给程序的命令行参数的数量(包括程序名称本身)
  • argv(argument vector)是一个指向指针数组的指针,其中每个指针指向一个包含命令行参数的字符串 

 

 

(二)举例二

#include<stdio.h>
#include<stdlib.h>
int main(int argc, char* argv[])
{if (argc != 4){printf("Use error\nUsage: %s op[-add|sub|mul|div] d1 d2\n", argv[0]); //argv[0], 会不会不存在呢??return 1;}int x = atoi(argv[2]);int y = atoi(argv[3]);int result = 0;// 你的程序一定有4个命令行参数,第一个是程序名if (strcmp(argv[1], "-add") == 0){result = x + y;printf("%d+%d=%d\n", x, y, result);}else if (strcmp(argv[1], "-sub") == 0){result = x - y;printf("%d-%d=%d\n", x, y, result);}else if (strcmp(argv[1], "-mul") == 0){result = x * y;printf("%d*%d=%d\n", x, y, result);}else if (strcmp(argv[1], "-div") == 0){if (0 == y) printf("%d/%d=error! div zero\n", x, y);else printf("%d/%d=%d\n", x, y, x / y);}else{printf("Use error, you should use right command line\nUsage: %s op[-add|sub|mul|div] d1 d2\n", argv[0]); //argv[0], 会不会不存在呢??}return 0;}

四、环境变量

(一)基本概念

  • 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数
  • 如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。
  • 环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性

(二)常见环境变量

  • PATH : 指定命令的搜索路径
  • HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)
  • SHELL : 当前Shell,它的值通常是/bin/bash

(三)查看环境变量方法

echo $NAME //NAME:你的环境变量名称

(四)测试PATH

echo $PATH

(五)和环境变量相关的命令

  • echo: 显示某个环境变量值
  • export: 设置一个新的环境变量
  • env: 显示所有环境变量
  • unset: 清除环境变量
  • set: 显示本地定义的shell变量和环境变量

 

(六)通过系统调用获取或设置环境变量

#include<stdio.h>                                                                                                             
#include<stdlib.h>    
int main()    
{    printf("%s\n",getenv("PATH"));    return 0;    
}

 

http://www.ds6.com.cn/news/19795.html

相关文章:

  • canvas做的网站百度搜索首页
  • 网站建设术语解释百度推广创意范例
  • 一个做品牌零食特卖的网站sem优化服务公司
  • 药品行业做网站百度指数电脑端查询
  • 网站的日历怎么做搜索引擎最新排名
  • 潍坊中脉网站建设公司百度指数数据
  • 网站制作怎么做图标自己手机怎么免费做网站
  • 网络商城网站怎样做关键词优化网站搜索排名优化怎么做
  • 提供手机网站制作贵州seo培训
  • 苏州网站推广排名影视站seo教程
  • 网站怎么升级seo免费软件
  • 源码建站之网站建设沪深300指数基金
  • 网站开发主要任务湖南靠谱的关键词优化
  • 建设部人事考试网站官网免费找精准客户软件
  • 济南模板网站设计简单的网页设计作品
  • 计算机技术员网站建设怎么seo标题关键词优化
  • 建设银行e路护航官方网站登陆百度关键词搜索热度
  • php网站开发代做网络营销策略的概念
  • 镇江网站建设一般多少钱网站性能优化方法
  • 京津冀协同发展八周年微信搜一搜排名优化
  • 桂林北站地图seo优化实训总结
  • 常德网站开发网络营销工具平台
  • 企业网站后台管理系统适合交换友情链接的是
  • 莱芜网站优化有哪些大一html网页制作作业
  • 秦皇岛做网站外包徐州自动seo
  • wordpress怎么没有导航googleseo优化
  • 网站建设技巧亅金手指排名27客源引流推广app
  • 网站开发公司的销售方式关键词优化排名用什么软件比较好
  • 郑州高端品牌网站建设谷歌优化排名怎么做
  • 网站弹出式链接后台怎么做seo代码优化