Tan's Blog.

windows操作系统基础

字数统计: 1.7k阅读时长: 5 min
2019/06/11 Share

Windows操作系统基础

PE文件结构

PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件(可能是间接被执行,如DLL)。PE文件包括PE文件头和PE数据区,PE文件头包括DOS头和PE头,PE数据区包括区块表和区块,区块中包括导入表、导出表等部分。

进程和线程管理

1、线程,有时被称为轻量级进程,是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针,寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。
2、进程定义了一个执行环境,包括它自己私有的地址空间、一个句柄表,以及一个安全环境;线程则是一个控制流,有自己的调用栈,记录了执行的历史。每个进程都包含一个或多个线程,当进程被初始化创建时系统为该进程创建第一个线程;当最后一个线程结束时,进程也随之结束。
进程中的线程既可以在用户模式下运行,也可以在内核模式下运行。如果一个进程运行在用户模式下,那么它就只能访问进程地址空间;如果运行在内核模式下,那么它将可以访问这个地址空间。

用户级线程

应用程序在操作系统提供的单个控制流的基础上,通过在有些控制点(比如系统调用)上分离出一些虚拟的控制流,从而模拟多个控制流的行为。由于应用程序对指令流的控制能力相对较弱,所以,用户级线程之间的切换往往受线程本身行为以及线程控制点选择的影响,线程是否能够公平地获得处理器时间取决于这些线程的代码特征。而且,支持用户级线程的应用程序代码很难做到跨平台移植,以及对于多线程模型的透明。用户级线程模型的优势:
(1)线程切换效率高,因为它不涉及系统内核模式和用户模式之间的切换;
(2)另外一个好处是应用程序可以采用适合自己特点的线程选择算法,可以根据应用程序的逻辑来定义线程的优先级,当线程数量很大时。但是,相对的会增加应用程序代码的复杂度。

内核级线程

指操作系统提供的线程语义,由于操作系统对指令流有完全的控制能力,甚至可以通过硬件终端来强迫一个进程或是线程暂停执行,以便把处理器时间移交给其他的进程或是线程,所以,内核级线程有可能应用各种算法来分配处理器时间。线程可以有优先级,高优先级的线程被优化执行,他们可以抢占正在执行的低优先级线程。在支持线程语义的操作系统中,处理器的时间通常是按照线程而非进城来分配的,因此,系统有必要维护一个全局的线程表,在线程表中记录每个线程的寄存器、状态以及其他的一些信息。然后,系统在适当的时候挂起一个正在执行的线程,选择一个新的线程在当前处理器上继续执行。
内核级线程的好处:
应用程序无需考虑是够要在适当的时候把控制权交给其他的线程,不比担心自己霸占处理器而导致其他线程得不到处理器时间。因而应用程序只要按照正常的指令来实现自己的逻辑就可以了,内核会妥善处理好线程之间的共享处理器的资源分配问题。但是这样带来的代价便是需要在用户模式和内核模式下进行切换:从用户模式切换到内核模式,再从内核模式切换到用户模式。在Intel的处理器上可能需要几百上千和处理器指令周期。

内存管理

Windows系统使用内存管理器对内存进行管理,主要负责两个任务:将进程的虚拟地址空间转译到物理内存,在内存不足时将数据换页到磁盘。

对象与句柄管理

Windows对象管理是WindowsExecutive的一个子系统实现,用于管理Windows资源。资源包括物理设备、文件、文件目录、注册表条目、正在运行的进程等等。所有子系统访问资源都必须通过对象管理子系统。
在程序设计中,句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。
句柄与普通指针的区别在于,指针包含的是引用对象的内存地址,而句柄则是由系统所管理的引用标识,该标识可以被系统重新定位到一个内存地址上。这种间接访问对象的模式增强了系统对引用对象的控制。

文件管理

文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
Windows操作系统包含对CDFS、UDF、FAT12、FAT16、FAT32、NTFS这些文件系统格式的支持,不同的格式适用于不同的特定环境。

CATALOG
  1. 1. Windows操作系统基础
    1. 1.1. PE文件结构
    2. 1.2. 进程和线程管理
      1. 1.2.1. 用户级线程
      2. 1.2.2. 内核级线程
    3. 1.3. 内存管理
    4. 1.4. 对象与句柄管理
    5. 1.5. 文件管理