进程基础(PROCESS)

进程基础(PROCESS)

  • 进程的基本概述:进程是系统中的基本执行单元,操作系统可以向进程分配系统资源,进程完成一些特定的任务。
    进程是最小分配资源单位,线程是最小的调度单位。
    在这里插入图片描述
    进程与程序的关系
    在这里插入图片描述
    进程的生存环境
    在这里插入图片描述
    进程创建后分配的内存地址为虚拟内存地址,是通过虚拟内存间接寻址的方式获取到,与实际的物理内存虽有联系,但是并不是一对一的使用比例。
    在这里插入图片描述
    系统中复杂的映射关系,保存在虚拟地址映射表中(内存管理器负责维护记录这些映射条目)

内存的基本单位
内存的最小单位是Page 页单位 1page=4096Bytes
例如malloc函数或者是new函数都是以4k为单位分配内存的
内存的四个基本权限
PROT_READ(只读)
PORT_WRITE(只写)
PORT_EXEC(可执行)
PORT_NONE(无权限)
例如:
程序员A malloc(3000)malloc(5192)
程序员B malloc(8192)
问:谁写的代码好?
A:申请一次内存(3000),系统分配一次内存页(4096),系统堆内存进行使用限制,允许程序员A使用,锁定1096,申请第二次内存,系统检查其内存使用情况,根据需求分配新的一页。
注意:这里锁定的1096,在不同的系统中,处理方式不同,有的系统会在第二次申请时,解锁,有的系统则不会。
B:申请一次内存,系统给其分配两页(8192)
考虑系统开销以及与系统的交互,所以B以更少的系统调度,完成任务。

保存恢复处理器现场,分时复用原则,系统调用
1.什么是系统调用?
在这里插入图片描述

调用过程:
在这里插入图片描述
层级转换的三种方法
1.系统调用
2.软件中断(int 0x80)
3.异常

2.分时复用机制:有限的cpu资源被多进程公用,cpu占用进行时间限制,创建时间片单位,进程可以获取时间片,暂时使用cpu,多进程快速切换

3.保存恢复处理器现场
在这里插入图片描述
进程的状态转换和线程的进程转换相同
linux进程状态转换
就绪态:当前进程已经创建初始化完毕,准备就绪,等待cpu资源执行
运行态:进程已经获取了cpu资源,开始执行特定任务(R)
阻塞态:进程即将陷入睡眠或阻塞,停止工作,放弃时间片资源(S)
挂起态:进程即将进入挂起状态,停止工作,放弃时间片资源(T)
阻塞态和挂起态的区别:看能否被中断,阻塞函数可以被强制中断,无法阻塞预期的时长,无法实现特定任务,例如read()。挂起态是无法被外力强制中断,只允许唤醒来拉活进程。
新生态:进程被创建,还没有初始化
终止态:进程结束状态
僵尸态进程(Zombie Process):可能会导致内存泄漏
孤儿进程(Orphan Process):危害是有弹性的,危害的大小取决于孤儿进程的工作)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值