操作系统概览
计算机分为硬件和软件两部分,硬件包括CPU、内存、硬盘、键盘等,软件一般包含系统软件和应用软件。其中最重要的系统软件是操作系统。
操作系统
当我们运行程序时,一般不直接与硬件打交道,而是通过操作系统去访问键盘、内存等。所以操作系统有两方面的作用:
作为机器的扩展 屏蔽硬件的差异性; 提供抽象层,比如进程、虚拟内存、文件等
作为资源的管理者 对CPU、I/O设备、内存等资源进行管理,避免被滥用
进程与线程
进程是操作系统对正在运行中程序的抽象,也可以理解为对处理器的抽象。在一瞬间,CPU只能运行一个进程,但是在多道程序设计系统中,每个进程各运行几十或几百毫秒,那一秒内CPU就可以同时运行多个进程,给人产生了并行的错觉。操作系统需要记录进程运行时的信息,包括程序计数器(PC)、寄存器、变量的当前值等,以便在进程切换后对其进行恢复。
一个进程包含一个线程,对现在的系统而言,通常一个进程有多个线程执行不同的任务,这些线程是共享进程资源的。线程是操作系统进行运行调度的最小单位。操作系统对进程的调度实际上就是对进程里面线程的调度,它包含在进程当中,是进程中实际运行工作的单位。
虚拟内存
虚拟内存是一个抽象概念,它为进程提供了假象,认为它拥有整个主存,但实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。每个进程看到的内存都是一致的,称为虚拟地址空间。
文件
文件就是字节序列。“一切皆是文件”是 Unix/Linux 的基本哲学之一。不仅普通的文件,目录、字符设备、块设备、 套接字等在 Unix/Linux 中都是以文件被对待;它们虽然类型不同,但是对其提供的却是同一套操作接口。每个I/O设备,包括磁盘、键盘、显示器、甚至网络,都可以抽象成文件,在Unix/Linux系统中,系统中所有的输入输出都是通过调用IO系统调用来完成
参考资料
版权声明: 本文为 InfoQ 作者【引花眠】的原创文章。
原文链接:【http://xie.infoq.cn/article/2e2b1ebe1d18bfd3470872eb4】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论