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

本地网站后台密码长沙公众号开发

本地网站后台密码,长沙公众号开发,北京seo公司有哪些,科技图书馆一.进程 1.进程调度 Linux把所有进程通过双向链表的方式连接起来组成任务队列#xff0c;操作系统和cpu通过选择一个task_struct执行其代码来调度进程。 2.进程的状态 1.运行态#xff1a;pcb结构体在运行或在运行队列中排队。 2.阻塞态#xff1a;等待非cpu资源就绪操作系统和cpu通过选择一个task_struct执行其代码来调度进程。 2.进程的状态 1.运行态pcb结构体在运行或在运行队列中排队。 2.阻塞态等待非cpu资源就绪硬盘网卡等资源 3.挂起态一个进程对应的代码和数据被操作系统因为资源不足而导致操作系统将该进程的代码和数据临时地置换到磁盘当中进程的pcb还在内存中。 3.linux下进程的状态 R:对应上面的运行态 S可中断睡眠对应上面的阻塞状态 D:深度睡眠不可被中断。深度睡眠的状态进程只能通过 “一觉睡到自然醒” 自己醒来OS 无权唤醒或杀死之。 T暂停状态调试 Xdead终止瞬时性非常强 Z:僵尸状态 二.深入理解fork 1.介绍fork fork通过复制一份当前进程父进程来创建一份全新的进程子进程父进程创建成功返回子进程的pid失败返回-1,子进程创建成功返回0失败返回-1。 2.为何会有两个返回值 fork可以分为以上三步1.操作系统先将用户态转为内核态通过系统调用create创建一个空进程。2.调用clone将父进程的代码和数据数据段堆栈等完全拷贝给子进程。3.return 返回。 当父进程通过前两步创建出子进程并把代码数据复制完成后父进程便return返回子进程的pid。子进程有了父进程的所有数据堆栈信息pcb由于pcb中记录了父进程代码执行到的位置因此子进程会接着执行后续return语句失败返回-1成功返回0. 3.fork底层剖析 三个调用的区别在于传入的参数不同 具体细节参考 资料1 资料2 资料3 1.fork() 和 vfork() 参数是写死的而 clone() 是可选的它可以选择当前创建的进程哪些部分是共享的哪些部分是独立的 2. vfork() 是历史的产物当调用 fork() 的时候需要将父进程的线性区和页表都拷贝一份而调用 exec()执行新程序后又要把所有页表删除重置新的页表建立映射关系效率很低 3.所以要有 vfork()vfork() 的 clone_flags 位置了 CLONE_VM 表示共享父进程的地址空间vfork()中创建的进程没有分配自己的地址空间而是通过一个 mm_struct 指针指向父进程的地址空间这个进程是为了在之后调用 exec() 执行新的程序 而在有了 Copy-on-write 技术后fork()出的子进程只创建了自己的地址空间然后用父进程的地址空间初始化每个页表的项置为父进程的页表项共享父进程的物理页面并将所有 私有/可写页面改为只读 4.当我们改变父子进程的数据后cpu 在运行过程中会发生一个缺页错误cpu 转交控制权给操作系统操作系统查找 VMA。发现该页权限为只读但所在段又是可写的产生一个矛盾这就是识别 Copy-on-write 的方法接着 OS给子进程分配一个新的物理页并将页表该页的地址修改成新的物理页地址这样 fork() 后再调用 exec() 就不用那么麻烦了可以直接将新的物理页与子进程的虚拟空间建立映射。 三.linux中的pcb实体task_struct 参考资料4 四.进程优先级 1.优先级 优先级PRIniceold(pri)PRI越小优先级越高。 linux下调整优先级就是调整nice值nice值从-20到19。 2.并发和并行 并行多个进程在多个cpu下分别同时运行。 并发多个进程采用进程切换通过一个cpu在一段时间下时间片让多个进程推进。 上下文cpu内存在寄存器当一个进程a在运行时cpu内的寄存器里面一定保存的是进程a的临时数据这些数据就叫该进程的上下文。为了实现并发当进程a暂时被切换的时候进程a会带走自己的上下文数据保存在pcb中目的是为了下次切换回来时能快速恢复。 五.环境变量 1.概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数。 如我们在编写C/C代码的时候在链接的时候从来不知道我们的所链接的动态静态库在哪里但是照样可以链接成功生成可执行程序原因就是有相关环境变量帮助编译器进行查找。 环境变量通常具有某些特殊用途还有在系统当中通常具有全局特性。 2.常见环境变量 PATH : 指定命令的搜索路径 HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录) SHELL : 当前Shell,它的值通常是/bin/bash 3.操作 1.查看环境变量echo $ PATH 2.显示所有环境变量:env 3.清除环境变量unset 4.设置一个新的环境变量export 4.获取环境变量 #include stdio.h int main(int argc, char *argv[], char *env[]) { int i 0; for(; env[i]; i){ printf(%s\n, env[i]); } return 0; }#include stdio.h int main(int argc, char *argv[]) { extern char **environ; int i 0; for(; environ[i]; i){ printf(%s\n, environ[i]); } return 0; }libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以在使用时 要用extern声明。 #include stdio.h #include stdlib.h int main() { printf(%s\n, getenv(PATH)); return 0; }常用getenv和putenv函数来访问特定的环境变量
http://www.pierceye.com/news/692983/

相关文章:

  • 免费域名x网站网站前期准备工作
  • 陕西网站建设公司排名智能优化网站
  • 做瞹瞹网站萍乡做网站的公司有哪些
  • 网站建设的类型有几种wordpress搜索返回页面内容
  • 建设网站备案与不备案区别招远建网站首选公司
  • 四川住房和城乡建设厅网站三类人员软文网站备案如何查询
  • 个人与企业签订网站开发合同网页制作教程实例
  • 做网站遇到竞争对手怎么办wordpress中文版邮件发送
  • 美橙互联旗下网站渐变网站
  • 做网站域名需要在哪里备案微信答题小程序
  • 购物网站页面布局个人站长做导航网站
  • wordpress 增强编辑器网站暂时关闭 seo
  • 重庆网站设计开发培训广西省住房和城乡建设厅官网
  • 购物网站模板免费下载网站排名快速提升工具
  • 中山制作网站的公司滨江区网站开发公司
  • 申请建设工作网站的函酒店网站建设方案策划方案
  • 宠物店网站模板你是网站设计有限公司的项目经理
  • 潍坊网站开发公司2018做网站还赚钱吗
  • 做化妆品网站怎样wordpress映射到外网访问
  • 关于加强门户网站建设爱客crm客户管理系统
  • 网站备案的是域名还是空间电子商务网站建设携程
  • 建设企业网站管理系统目的开发一个网站的费用
  • 网站开发和浏览器兼容问题软文广告案例分析
  • 更新网站的方法自贡网站建设哪家好
  • 沈阳网络建网站个人电子商务网站建设的总体目标
  • asp 大型网站开发优化公司治理结构
  • 做外贸 建网站要注意什么ssr网站怎么做
  • 杭州做兼职网站建设老五wordpress
  • 网站建设工资怎么样网站曝光率
  • 亚泰国际建设股份有限公司网站app推广方案模板