当前位置:首页 > 资源回收 > 正文

进程内存分配和回收原理

简述信息一览:

在终止一个进程时,OS要完成的主要工作是什么?

在操作系统终止一个进程时,主要需要完成以下工作:回收资源:操作系统需要回收该进程所使用的所有资源,包括内存、文件描述符、设备和其他系统资源。关闭打开的文件:进程可能会打开一些文件以进行读写操作。在终止进程时,操作系统需要关闭所有与该进程关联的文件描述符。

OS调用进程终止原语进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。

 进程内存分配和回收原理
(图片来源网络,侵删)

.处理器管理 处理器是完成运算和控制的设备。在多道程序运行时,每个程序都需要一个处理器,而一般计算机中只有一个处理器。操作系统的一个功能就是安排好处理器的使用权,也就是说,在每个时刻处理器分配给哪个程序使用是操作系统决定的。

进程管理,其工作主要是进程调度,在单用户单任务的情况下,处理器仅为一个用户的一个任务所独占,进程管理的工作十分简单。但在多道程序或多用户的情况下,组织多个作业或任务时,就要解决处理器的调度、分配和回收等问题 。存储管理分为几种功能:存储分配、存储共享、存储保护 、存储扩张。

调度程序的实现相对简单,主要目的是找到一个状态为 RUNNABLE 的进程执行,这通常是通过遍历进程 PCB 数组来完成的。在调度程序中,当找到一个合适的进程时,会调用 swtch 函数来交换控制权。这个函数会保存当前进程的上下文,并恢复调度程序的上下文,以便执行调度程序的代码。

 进程内存分配和回收原理
(图片来源网络,侵删)

操作系统的五大功能包括:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。操作系统的功能主要体现在对计算机资源――微处理器、存储器、外部设备、文件和作业五大计算机资源的管理,操作系统将这种管理功能分别设置成相应的程序管理模块,每个管理模块分管一定的功能。即操作系统的五大功能。

***麒麟桌面系统僵尸进程

1、处理***麒麟桌面系统中僵尸进程的方法主要包括以下两点:确定并处理父进程:僵尸进程是已经终止的子进程,但其父进程尚未回收其资源。因此,首先需要确定僵尸进程的父进程。尝试重启父进程。

linux0.11的wait函数

Linux 0.11版本的wait函数是父进程用于等待其子进程结束的系统调用。功能概述:在Linux 0.11内核中,wait函数的主要作用是使父进程等待其子进程的结束。当父进程调用wait函数时,它会进入阻塞状态,直到其子进程之一结束或接收到一个信号为止。

Linux 0.11版本的wait函数是一个用于父进程等待其子进程结束的系统调用。以下是对该函数的详细解函数作用:在Linux 0.11内核中,wait函数的主要作用是使父进程暂停执行,直到其某个子进程结束。这是进程间同步和通信的一种重要机制,有助于父进程回收子进程的资源,避免产生僵尸进程。

将读写请求交给块设备,并在请求完成后通过中断通知。高效利用内存与避免内存分配Linux 0.11中的BufferCache通过侵入式容器技术实现了高效的内存利用和零内存分配。

setup系统调用在kernel/blk_drv/hd.c中实现,对应函数为sys_setup。主要设置硬盘分区结构、RAMDISK,并挂载安装文件系统。启动shell程序:执行/bin/sh后,shell程序启动,至此,Linux0.11的初始化过程完成。用户可通过控制台输入命令与内核交互,printf函数产生格式化信息并输出至标准输出设备。

Linux0.11进程的通信方式主要包括匿名管道(pipe)及有名管道(fifo)、信号(signal)、消息队列(message queue)、共享内存(shared memory)、信号量(semaphore)和套接字(socket)等。

进程处于僵尸状态很长时间的原因

进程处于僵尸状态很长时间的原因主要有以下几点:磁盘空间不足:当进程异常终止(如崩溃)并尝试写入core文件时,如果系统磁盘空间不足,core文件的写入过程将无法进行。此时,进程的状态会转变为僵尸状态,因为它已经终止,但其父进程尚未通过wait()或类似系统调用回收其资源(包括core文件)。

产生原因:当一个进程终止时,它会向父进程发送一个SIGCHLD信号。如果父进程没有及时处理这个信号,读取子进程的退出状态,那么子进程就会进入僵尸状态。 影响:僵尸进程虽然不再占用CPU或内存资源,但仍然会占用系统进程表中的一个条目。

僵尸进程的影响:僵尸进程虽然不再占用 CPU 资源,但仍然会占用内存资源,并在系统进程表中占用位置以保留部分信息(如 PID、退出状态等)。如果系统中存在大量僵尸进程,可能导致进程表耗尽,从而无法创建新的进程,进而影响系统性能和稳定性。

关于父进程回收资源,以及进程内存分配和回收原理的相关信息分享结束,感谢你的耐心阅读,希望对你有所帮助。