Linux进程概念

冯诺依曼体系结构规定CPU通过内存与外设交互。操作系统作为管理软硬件的软件,使用内核管理和系统调用接口管理硬件。进程是运行中的程序,通过多任务的分时机制实现并发。Linux中的进程状态包括运行、休眠等,PCB用于存储进程状态信息。进程通过虚拟地址空间访问物理内存,内存管理利用页表映射减少碎片并控制访问。
摘要由CSDN通过智能技术生成

前言:

冯诺依曼体系结构

 cpu想要处理数据,是从内存中取出数据进行处理的,cpu想要执行一个程序,第一件就是先把程序从硬盘加载到内存。不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)。外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
一句话,所有设备都只能直接和内存打交道。

操作系统:
本质:一个软件程序。功能:对计算机的软硬件进行管理。目的:与硬件交互,管理所有的软硬件资源。为用户程序(应用程序)提供一个良好的执行环境。                                                                 一个完整的操作系统:内核+外部应用。

我们所说的linux其实就是Linux内核,各个操作系统厂商,根据linux内核进行定制化开发,再加上自己的封装应用,然后组成自己的发行版操作系统。

操作系统如何管理硬件?在操作系统中,先将每个硬件描述起来;双向链表给组织起来进行管理

 系统调用接口:操作系统向上提供的用于访问内核的接口,因为系统调用接口功能单一,在实现某些功能的时候需要进行复杂的编程。                                                                                           因此针对典型的功能场景,大佬们进行了接口的封装,这种封装的接口叫做库函数。

库函数和系统调用接口的关系:库函数是系统调用接口的一层封装。

以下内容解决以下问题:

进程:

进程的概念:进程是什么?

进程是运行中的程序,运行中的程序很多,但cpu只有一个,cpu到底该处理谁的指令和程序呢?

多任务操作系统中的cpu分时机制:

由操作系统进行管理,cpu可以一直处理数据,但操作系统进行控制,cpu只处理一个程序很短的一段时间,然后就切换处理下一个程序,以快速切换达到一种效果--多程序好像在同时运行的效果。

操作系统需要对程序的运行过程进行描述(比如上一次运行到哪里,正在处理哪个数据,在程序切换时,都要把cpu寄存器中的数据给保存下来),等下次切换回来时,把这些数据重新加载到寄存器上,这个对程序运行的描述,叫做pcb进程控制。在linux下是一个task_struct结构体,操作系统调度管理程序的运行就是通过pcb实现的。

 pcb中的描述信息:标识符,内存指针(程序数据在内存中的地址),程序计数器,上下文数据(切换前cpu寄存器的数据会保存下来),进程状态,IO信息.....

进程状态:

linux下的进程状态:运行,可中断,不可中断休眠态,停止态,僵尸态

运行-R:正在执行,以及拿到时间片就能执行的进程

可中断休眠态-s:一种阻塞态(因某种运行条件不满足,而暂时不能被调度运行的进程状态,比如sleep(3))

不可中断休眠态-D:无法被中断打断阻塞,只能等待阻塞的唤醒条件满足后才能被调度执行

停止态:什么都不做(这里跟休眠一样,休眠是阻塞,停止还会被调度)

僵尸态:进程退出了,但资源没有完全被释放,等待处理的一种状态。

僵尸进程:是一种退出了但资源没有完全被释放的过程。

 这里的家属进程,就是父进程。

pid_t fork(void); --通过复制调用进程(父进程)来创建一个新的进程(子进程)。

僵尸进程:是子进程先于父进程退出,为了保存退出原因,因此退出后没有完全释放资源而成为僵尸进程。

孤儿进程:父进程先于子进程退出,子进程成为孤儿进程。

 

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数
优点:1、即时生效,让运行环境配置更加灵活。                                                                                            2、  通过环境变量可以给运行的程序传递数据。

 进程并不是直接访问物理地址,而是通过访问虚拟地址,进行映射访问物理地址的方式进行 :                 1、实现数据在物理内存上的离散式储存,提高碎片化内存利用率                                                      2、实现内存访问控制

程序地址空间,其实就是操作系统为每个进程描述的一个虚拟的地址空间,进程中每个变量的地址其实都是虚拟地址,虚拟地址经过页表映射之后。得到物理地址,进而访问物理内存。                    虚拟地址空间是一个结构体:linux下是mm_struct,系统通过mm_struct向每个进程描述了一个虚拟的,连续的,完整的,线性的地址空间。

内存管理方式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值