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

进程管理

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

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

进程与线程的定义:

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

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

进程与线程的关系:

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

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

进程与线程的区别:

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

①一个程序至少有一个进程,一个进程至少有一个线程。

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

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

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

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

进程与线程的优缺点:

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

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

创建和删除用户进程和系统进程。

挂起和重启进程

提供进程同步机制

提供进程通信机制

提供死锁处理机制

内存管理

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

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

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

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

根据需要分配和释放内存空间。

存储管理

文件系统管理

大容量存储系统管理

高速缓存

I/O系统

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

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

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

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

创建和删除文件。

创建和删除目录来组织文件。

提供操作文件和目录的原语。

将文件映射到二级存储上。

在稳定存储介质上备份文件。

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

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

空闲空间管理。

存储空间分配。

硬盘调度。

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

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

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

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

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

通用设备驱动器接口

特定硬件设备的驱动程序。

时间: 2025-01-02 15:13:09

进程管理、内存管理、存储管理初步了解的相关文章

操作系统中作业、线程、进程、内存管理、垃圾回收以及缓存等概念

作业:用户在一次解题或是一个事务处理过程中要求计算机系统所做的工作的集合.它包括用户程序.所需要处理的数据以及控制命令等.作业是由一系列有序的步骤组成. 进程:一个程序在一个数据集合的一次运行过程.所以一个程序在不同数据集合上运行,乃至一个程序在同样的数据集合上的多次运行都是不同的进程. 线程:线程是进程中的一个实体,被系统独立调度和执行的基本单位. 管程:管程实际上是定义了一个数据结构和在该数据结构上的能为并发进程做执行的一组操作,这组操作能同步进程和改变管程中的数据. 操作系统中作业.线程.

计算机操作系统学习笔记_7_内存管理 --内存管理基础

h2.western { font-family: "Liberation Sans",sans-serif; font-size: 16pt; }h2.cjk { font-family: "微软雅黑"; font-size: 16pt; }h2.ctl { font-family: "AR PL UMing CN"; font-size: 16pt; }h1 { margin-bottom: 0.21cm; }h1.western { fon

Linux用户管理 权限管理 内存管理 网络管理命令

默认添加的用户会自动加入和用户名一样的组中su 切换用户查看当前登陆的用户: whoami id`查看当前用户属于哪个组:groupsgroupadd 组名 添加组groupdel 组名 删除组grep test /etc/group 在group文件里面寻找testadm(组名):x(密码):4(组id):syslog,liujizhou(组里面的用户) 将pentest用户添加到test组中gpasswd -a pentest test将pentest从test组中移除gpasswd -d

Linux 内核开发 - 内存管理

1.1什么是内存管理 内存管理是对计算机内存进行分配和使用的技术.内存管理主要存在于多任务的操作系统中,由于内存资源极其有限,需要在不同的任务之间共享内存,内存管理的存在就是要高效.快速的非配内存,并在适当的时候回收和释放内存,以保各个任务正常的执行.最常见的内存管理机制有:段式内存管理和页式内存管理. 1.2内存中的地址 早期的16位计算中,寄存器的位宽只有16位,为了能访问到1M Bit的内存空间,CPU就采用了分段的方式来管理内存,将1M的内存分为若干个逻辑段,每个逻辑段的起始地址必须是1

linux内存管理浅析

[地址映射](图:左中)linux内核使用页式内存管理,应用程序给出的内存地址是虚拟地址,它需要经过若干级页表一级一级的变换,才变成真正的物理地址.想一下,地址映射还是一件很恐怖的事情.当访问一个由虚拟地址表示的内存空间时,需要先经过若干次的内存访问,得到每一级页表中用于转换的页表项(页表是存放在内存里面的),才能完成映射.也就是说,要实现一次内存访问,实际上内存被访问了N+1次(N=页表级数),并且还需要做N次加法运算.所以,地址映射必须要有硬件支持,mmu(内存管理单元)就是这个硬件.并且需

启动期间的内存管理之初始化过程概述----Linux内存管理(九)

日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 Linux-4.7 X86 & arm gatieme LinuxDeviceDrivers Linux内存管理 在内存管理的上下文中, 初始化(initialization)可以有多种含义. 在许多CPU上, 必须显式设置适用于Linux内核的内存模型. 例如在x86_32上需要切换到保护模式, 然后内核才能检测到可用内存和寄存器. 而我们今天要讲的boot阶段就是系统初始化阶段使用的内存分配器. 1 前景回顾 1.1

<Linux内核源码>内存管理模型

题外语:本人对linux内核的了解尚浅,如果有差池欢迎指正,也欢迎提问交流! 首先要理解一下每一个进程是如何维护自己独立的寻址空间的,我的电脑里呢是8G内存空间.了解过的朋友应该都知道这是虚拟内存技术解决的这个问题,然而再linux中具体是怎样的模型解决的操作系统的这个设计需求的呢,让我们从linux源码的片段开始看吧!(以下内核源码均来自fedora21 64位系统的fc-3.19.3版本内核) <include/linux/mm_type.h>中对于物理页面的定义struct page,也

Linux内存管理介绍

linux内存管理概述 内存管理的目标: 提供一种方法,在各种目的各个用户之间实现内存共享,应该实现以下两个功能: 1.最小化管理内存的时间,内存申请和释放响应时间短 2.最优化用于一般应用的可用内存,内存管理(算法)所占用的内存少,浪费的内存少(内存碎片少) 下图为内存分配器的关系: 1.kmalloc用于分配一块以字节数为单位的内存,所分配的内存物理地址是连续的 void *kmalloc(size_t size, gfp_t flags); size > SLUB_MAX_SIZE(2*P

关于linux内存管理

 Linux的内存管理主要分为两部分:物理地址到虚拟地址的映射,内核内存分配管理(主要基于slab). 物理地址到虚拟地址之间的映射 1.概念 物理地址(physical address) 用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相相应.--这个概念应该是这几个概念中最好理解的一个,可是值得一提的是,尽管能够直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,可是其实,这仅仅是一个硬件提供给软件的抽像,

[Android Memory] Android内存管理、监测剖析

转载自:http://blog.csdn.net/anlegor/article/details/23398785 Android内存管理机制: Android内存管理主要有:LowMemory Killer机制,Ashmem,PMEM/ION及Native内存和Dalvik内存管理管理和JVM垃圾回收机制. LowMemory Killer机制: 源码位置drivers/staging/Android/lowmemorykiller.c Android是一个多任务系统,也就是说可以同时运行多个