操作系统-程序员的自我修养

一、温故而知新

所有的应用程序都以进程process的方式运行在比操作系统权限更低的级别,每个进程都投自己独立的地址空间,使得进程之间的地址空间相互隔离。

抢占式CPU分配方式:操作系统可以强制剥夺CPU资源并且分配给它认为目前最需要的进程。

磁盘被抽象成普通的系统文件。

CPU提供两条专门的指令“in”和“out”来实现对硬件端口的读和写。

地址空间分为:虚拟地址空间、物理地址空间

我们把程序给出的地址看作是一种虚拟地址,然后通过某些映射的方法,将这个虚拟地址转换成实际的物理地址。

虚拟地址空间是指虚拟的、人们想象出来的地址空间,其实并不存在,每个进程都有自己独立的虚拟空间,而且每个进程只能访问自己的地址空间,这样就有效地做到了进程地隔离。

分页地基本方法是把地址空间认为的分为固定大小的页,每页的大小由硬件决定,一般是4KB。

把虚拟空间的页叫做虚拟页,把物理内存中的页叫物理页,把磁盘中的页叫磁盘页。

当进程需要用到不存在内存的页,硬件就会捕获这个消息,就是所谓的页中断,然后操作系统接管进程,负责将需要的页从磁盘中读出来并且装入内存,并建立映射关系。

线程,有时被称为轻量级进程,是程序执行流的最小单元。一个标准的线程由线程ID、当前指令指针PC、寄存器集合和堆栈组成。通常意义上,一个进程由一个到多个线程组成,各个线程之间共享程序的内存空间及一些进程级的资源。

多个线程可以互不干扰并发执行,并共享进程的全局变量和堆的数据。

二、

未完待续......

你可能感兴趣的:(java)