进程2

进程概念:    进程时操作系统调度程序运行的灵魂 ----pcb,在linux 下是task_struct
进程查看:  ps -ef ; -aux             /proc(保存)   getpid() 
进程创建:  操作系统通过复制调用进程创建一个新的子进程   fork() 
           复制:复制父进程的pcb(代码共享,数据独有)    父进程PPID  子进程PID
		   创建子进程的意义:分担压力;单独完成其他任务;
		   返回值:对于父进程,返回值是子进程的pid>0;对于子进程,返回值是0;出错返回-1
进程状态:运行态R,可中断睡眠态S,不可中断睡眠态D,停止态T,僵死态Z;
僵尸进程:处于僵死状态的进程       进程退出了,但是资源没有完全释放;
         产生原因:子进程先于父进程退出,退出后操作系统通知父进程,获取子进程返回值,
		 并且允许操作系统释放子进程资源(没有完全释放是为了保存退出原因),父进程没有关注子进程的退出,这时候子进程处于僵死状态成为僵尸进程;
		 退出方式:退出父进程;
		 避免方式:进程等待
孤儿进程:父进程先于子进程退出,子进程成为孤儿进程,运行在系统后台,父进程成为1号进程
守护进程和精灵进程


环境变量:用于存储系统运行环境参数的变量----让系统的参数设置更加简单
环境变量相关命令:
             查看环境变量:  env  set  echo
			 添加环境变量:  export
			 删除环境变量:   unset
常见环境变量: HOME  USER  PWD  SHELL  PATH
环境变量特性:全局特性(父子进程之间的继承关系,父进程设置了子进程的环境变量)
代码中操作环境变量:  main函数值第三个参数    int main(int argc,char *argv[],char*enxv[])
                      全局变量          
					  函数  
程序地址空间:

内存地址:内存区域的一个编号
程序地址空间:进程的虚拟地址空间---虚拟地址 mm_struct
               {  ulong mem_size
			      ulong code_start
				  ulong code_end  }
每个程序都有一个“连续”的地址空间             分页式当剩余内存小于所需要运行的内存,
我们所看到的程序地址空间实际是一个虚拟地址空间,是操作系统通过mm_struct这个结构体为进程描述的一个空间,陶瓷有时候也称作内存描述符

为什么要使用虚拟地址空间呢?
         进程在通过访问虚拟地址进而获取变量数据,最终还是要去访问物理内存,因为数据是存储在物理内存中的
		 在虚拟地址和物理地址之间通过“页表”进行地址映射,转换得到物理地址。进而访问物理内存区域
		 通过映射之后,物理地址可就不一定连续了,通过这种映射转换的方式实现数据的离散存储提高内存利用率
	“页表”中不但记录了虚拟地址和物理地址的映射关系,并且还记录了这块地址的属性实现内存访问控制
	
写时拷贝技术:操作系统通过复制父进程创建子进程,子进程初始时与父进程指向同一块物理内存区域,当内存数据发生改变时,会为子进程重新开票内存更新页表
进程的独立性:独立更加稳定
虚拟地址空间和页表的作用:   提高内存利用率;增加访问控制;保持进程独立性;
虚拟地址怎样转换成物理地址:                                           -----------------有图片C理解
                         分段式内存管理:内存地址的构成---段号+段内偏移
						                                  段表--有很多的段表项(物理地址的起始地址)
						 分页式内存管理: 内存地址的构成---页号+页内偏移
						                                   页表--有很多的页表项
                         段页式内存管理:   段号+段内页号+页内偏移
	                                        段表项中又有段内页表起始地址
						                    段内页表中又包含物理页号
分段式:通过地址中的段号去段表中找到段表项,通过段表项中物理起始地址加上地址中段内偏移获取到物理地址
分页式:通过地址中的页号找到页表项,通过页表项中的物理页号加上页内偏移获取到物理地址
段页式:通过段号在段表中找到段表项,通过段表项中的段内页表地址找到段内元素,通过地址值段内页号在段内页表中找到页表项,通过页表中的物理页号与页内偏移组成物理地址

内存置换算法:
              swap交换分区:  内存不够时,将内存中暂时不使用的数据置换到交换分区,腾出内存,处理数据
			  三种算法:FIFO: 先进先出
			            LFU:  最近最少频率未使用
						LRU:  最近最久没使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记得多喝热水…

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值