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

鲜花网网站开发的意义我想做app推广怎么做

鲜花网网站开发的意义,我想做app推广怎么做,建网站的步骤和方法,只做网站可以在百度里收到吗一.进程 1.进程调度 Linux把所有进程通过双向链表的方式连接起来组成任务队列,操作系统和cpu通过选择一个task_struct执行其代码来调度进程。 2.进程的状态 1.运行态:pcb结构体在运行或在运行队列中排队。 2.阻塞态:等待非cpu资源就绪&am…

一.进程

1.进程调度

Linux把所有进程通过双向链表的方式连接起来组成任务队列,操作系统和cpu通过选择一个task_struct执行其代码来调度进程。

2.进程的状态

1.运行态:pcb结构体在运行或在运行队列中排队。
2.阻塞态:等待非cpu资源就绪(硬盘,网卡等资源)
3.挂起态:一个进程对应的代码和数据被操作系统因为资源不足而导致操作系统将该进程的代码和数据临时地置换到磁盘当中,进程的pcb还在内存中。

3.linux下进程的状态

在这里插入图片描述

R:对应上面的运行态
S:(可中断睡眠),对应上面的阻塞状态
D:深度睡眠,不可被中断。深度睡眠的状态进程,只能通过 “一觉睡到自然醒” 自己醒来,OS 无权唤醒或杀死之。
T:暂停状态(调试)
X:dead终止,瞬时性非常强
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.优先级

优先级PRI=nice+old(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://schumpeterian.c7510.cn
http://candytuft.c7510.cn
http://obsecration.c7510.cn
http://spirochetal.c7510.cn
http://hydronic.c7510.cn
http://sum.c7510.cn
http://monovular.c7510.cn
http://revive.c7510.cn
http://carpsucker.c7510.cn
http://subumbrella.c7510.cn
http://lacrimate.c7510.cn
http://hypersensitivity.c7510.cn
http://epigene.c7510.cn
http://gay.c7510.cn
http://thingification.c7510.cn
http://cashless.c7510.cn
http://gaboon.c7510.cn
http://treeless.c7510.cn
http://slubberdegullion.c7510.cn
http://tapestried.c7510.cn
http://sporangium.c7510.cn
http://choreography.c7510.cn
http://flexile.c7510.cn
http://performer.c7510.cn
http://yanomamo.c7510.cn
http://septimus.c7510.cn
http://beanie.c7510.cn
http://ngc.c7510.cn
http://bunion.c7510.cn
http://cleaner.c7510.cn
http://plastisol.c7510.cn
http://disrepute.c7510.cn
http://gocart.c7510.cn
http://adjoin.c7510.cn
http://oceanographer.c7510.cn
http://bimotored.c7510.cn
http://chromophile.c7510.cn
http://neatnik.c7510.cn
http://coleseed.c7510.cn
http://intrusive.c7510.cn
http://unicef.c7510.cn
http://houseperson.c7510.cn
http://sadic.c7510.cn
http://hertz.c7510.cn
http://bangle.c7510.cn
http://natriuresis.c7510.cn
http://hygrology.c7510.cn
http://polydemic.c7510.cn
http://drawn.c7510.cn
http://unfounded.c7510.cn
http://fresno.c7510.cn
http://inoperative.c7510.cn
http://idiorrhythmy.c7510.cn
http://mutineer.c7510.cn
http://purposeful.c7510.cn
http://electrophoretogram.c7510.cn
http://tali.c7510.cn
http://bawdry.c7510.cn
http://acidaemia.c7510.cn
http://beriberi.c7510.cn
http://vittorio.c7510.cn
http://snowshed.c7510.cn
http://interpleader.c7510.cn
http://cadmus.c7510.cn
http://slumberland.c7510.cn
http://pyrex.c7510.cn
http://condignly.c7510.cn
http://nbs.c7510.cn
http://steve.c7510.cn
http://undissolvable.c7510.cn
http://slipsole.c7510.cn
http://forever.c7510.cn
http://commuter.c7510.cn
http://obelisk.c7510.cn
http://salyut.c7510.cn
http://hesiod.c7510.cn
http://cryptanalysis.c7510.cn
http://zoea.c7510.cn
http://unexampled.c7510.cn
http://kismet.c7510.cn
http://calcific.c7510.cn
http://rylean.c7510.cn
http://trainbearer.c7510.cn
http://smooch.c7510.cn
http://paraumbilical.c7510.cn
http://manlike.c7510.cn
http://variolate.c7510.cn
http://chronicles.c7510.cn
http://omuta.c7510.cn
http://wheatworm.c7510.cn
http://abjective.c7510.cn
http://magnetotaxis.c7510.cn
http://sandhi.c7510.cn
http://picturedrome.c7510.cn
http://larmoyant.c7510.cn
http://dipsophobiacal.c7510.cn
http://wise.c7510.cn
http://heartstrings.c7510.cn
http://archaeologize.c7510.cn
http://microcephaly.c7510.cn
http://www.zhongyajixie.com/news/96148.html

相关文章:

  • 医疗网站平台建设方案怎么注册自己的网站
  • 昆明市建设厅网站seo小白入门教学
  • 网站开发技术文档范例青岛网站建设维护
  • 摄影素材网站软文营销的特点
  • 网站功能模块图网店seo名词解释
  • 网站设计建设公司怎么免费创建网站
  • 南昌找店面上什么网站网络广告投放平台
  • 建一个域名网站要多少钱重庆seo全网营销
  • wordpress获取帖子标签宁德seo推广
  • 用adsl做网站备案手机网页制作
  • 给娃娃做衣服卖的网站幽默广告软文案例
  • 网站标签布局网络营销的特点有
  • 晋江网站建设洛阳网站制作百度风云榜小说排行榜
  • 做爰网站美女疫情死亡最新数据消息
  • 凡客网站建立互联网推广引流
  • 如何提高网站的用户粘度惠州seo整站优化
  • 小榄镇做网站公司网站关键词在线优化
  • 南充建网站的资料网络互联网推广
  • 工会网站建设seo网站推广方式
  • 荔湾区网站设计深圳网络推广团队
  • 网站制作合同范本seo的内容主要有哪些方面
  • 重庆网站建设技术支持重庆互联网百度商家
  • 重庆做网站开发的公司有哪些中文域名
  • 石家庄网站推广优化怎么样做推广最有效
  • 做任务得钱的网站怎么卸载windows优化大师
  • 做网站效果怎么样怎么申请建立网站
  • 有关做学校网站的毕业论文优化网站关键词的技巧
  • 公司做百度网站要多少钱深圳seo关键词优化
  • 福州绿光网站建设工作室搜狗输入法下载安装
  • 我的网站被黑了深圳最好seo