进程管理内存管理存储管理初步了解

Posted 伊甸一点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程管理内存管理存储管理初步了解相关的知识,希望对你有一定的参考价值。

进程管理

进程需要一定的资源(包括CPU时间、内存、文件、I/O设备)以完成其任务。这些资源可以在进程创建时分配给进程,也可以在执行进程时分配给进程。除了在创建时得到各种物理和逻辑资源外,进程还可以接受传输过来的各种初始化数据(输入)。

需要注意:程序本省并不是进程,程序是被动的实体,而进程是一个活动的实体。

clip_image001 进程与线程的定义:

clip_image002 进程是具有一定独立功能的程序关于某个数据集合上的依次运行活动,进程是系统进行资源分配和调度的独立单位。

clip_image002[1] 线程是进程的一个实体,是CPU和分配的基本单位。线程自己基本不拥有系统资源,只拥有在运行中必不可少的资源(如程序计数器,寄存器和栈),但是它可与同属一个进程的其他线程共享进程所拥有的全部资源。

clip_image001[1] 进程与线程的关系:

clip_image002[2] 一个线程可以创建和撤销另一个线程。同一个进程中的多个线程之间可以并发执行。

clip_image002[3] 相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

clip_image001[2] 进程与线程的区别:

进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其他进程产生影响,而线程只是进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程没有单独的地址空间,一个线程死掉等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,消耗资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

clip_image002[4] ①一个程序至少有一个进程,一个进程至少有一个线程。

clip_image002[5] ②线程的划分尺度小于进程,使得多线程程序的并发性高。

clip_image002[6] ③进程在执行过程中拥有独立的内存单元,而多线程共享内存,从而极大地提高了程序的运行效率。

clip_image002[7] ④每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能都独立执行,必须依赖在应用程序中,由应用程序提供多个线程执行控制。

clip_image002[8] ⑤多线程的意义在于一个应用程序,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。

clip_image001[3] 进程与线程的优缺点:

线程执行开销小,但不利于资源的管理和保护,而进程正相反。同时,线程适合在双CPU系统上运行,而进程则可以跨机器运行。

clip_image003

操作系统负责下述与进程管理相关的活动:

clip_image002[9] 创建和删除用户进程和系统进程。

clip_image002[10] 挂起和重启进程

clip_image002[11] 提供进程同步机制

clip_image002[12] 提供进程通信机制

clip_image002[13] 提供死锁处理机制

内存管理

内存是可以被CPU和I/O设备所共同快速发昂问的数据仓库。CPU在获取指令周期时从内存中读取指令,而在获取数据周期时对内存内的数据经行读出和写入(冯·诺依曼结构中)。如果一个程序需要执行,那么它必须先变换成绝对地址并装入内存。随着程序的执行,进程可以通过产生绝对地址来访问内存中的程序指令和数据。最终,程序终止,其内存空间得以释放,并且下一个程序可以装入并得以执行。

clip_image005

操作系统负责下述有关内存管理的活动

clip_image002[14] 记录内存的哪部分正在被使用以及被谁使用。

clip_image002[15] 当有内存空间时,决定哪些进程可以装入内存。

clip_image002[16] 根据需要分配和释放内存空间。

存储管理

clip_image002[17] 文件系统管理

clip_image002[18] 大容量存储系统管理

clip_image002[19] 高速缓存

clip_image002[20] I/O系统

文件系统管理:是操作系统最为常见的组成部分。磁带、磁盘、光盘是常见的存储介质。每种介质需要通过一个设备来控制,如磁盘驱动器和磁带驱动器等,拥有的属性包括:访问速度、容量、数据传输效率、访问方法(顺序或随机)

文件是由其创建者定义的一组相关信息的集合。通常,文件表示程序(源程序和目标程序)和数据。数据文件可以使数值的、字符的、字符数值或二进制的。文件可以没有格式,也可以有严格的格式。

操作系统通过管理大容量存储器,来实现文件这一抽象概念。文件通常组成目录以方便使用。最后,当多个用户可以访问文件时,需要控制由什么人以及按照什么方式来访问文件。

操作系统负责以下有关文件管理的活动:

clip_image002[21] 创建和删除文件。

clip_image002[22] 创建和删除目录来组织文件。

clip_image002[23] 提供操作文件和目录的原语。

clip_image002[24] 将文件映射到二级存储上。

clip_image002[25] 在稳定存储介质上备份文件。

clip_image006

大容量存储器管理:由于内存太小不能容纳所有数据和程序,加上掉电会失去所有数据,计算机系统必须提供二级存储器(secondary storage)以备份内存。绝大多数现代计算机系统都采用硬盘作为主要在线存储介质来存储程序和数据。

操作系统负责下面有关硬盘管理的活动:

clip_image002[26] 空闲空间管理。

clip_image002[27] 存储空间分配。

clip_image002[28] 硬盘调度。

clip_image007

由于二级存储器使用频繁,因此必须高效。但是有时使用比二级存储更慢价格更低的存储器,如磁盘数据的备份、很少使用的数据、长期档案存储。磁带驱动器以及磁带、CD/DVD驱动器以及光盘就是典型的三级存储(tertiary storage)设备。这些介质格式包括WORM(一次写,多次读)和RW(读-写)。三级存储对系统性能并不是关键,但也要管理好。有些操作系统对之加以管理,而另一些则将三级存储管理交给应用程序管理。

高速缓存:信息通常保存在一个存储系统中(如内存)。当使用它时,它会被临时地复制到更快的存储系统中——高速缓存。当需要特定信息时,首先检查它是否在高速缓存中。如果是,可直接使用高速缓存中的信息;否则,使用位于内存中的信息,同时将其复制到高速缓存中以便下次使用。

clip_image008

由于高速缓存大小有限,所以高速缓存管理(cache management)的设计很重要。对高速缓存大小和置换策略的仔细选择可以极大地提高性能。

I/O系统:操作系统的目的之一在于对用户隐藏具体硬件设备的特性。例如,在UNIX系统中,I/O子系统对操作系统本身隐藏了I/O设备的特性。I/O子系统包括下面几个部分:

clip_image002[29] 一个包括缓存、高速缓存和假托机的内存管理部分。

clip_image002[30] 通用设备驱动器接口

clip_image002[31] 特定硬件设备的驱动程序。

clip_image009

以上是关于进程管理内存管理存储管理初步了解的主要内容,如果未能解决你的问题,请参考以下文章

Oracle体系结构和用户管理

Linux内存管理 - 页表的映射过程初步了解

进程加载进化史(进程加载与内存存贮管理)

Linux 的内存分页管理

Oracle体系结构和用户管理

Linux的内存分页管理