操作系统概览

发布于: 2020 年 07 月 05 日

计算机分为硬件和软件两部分,硬件包括CPU、内存、硬盘、键盘等,软件一般包含系统软件和应用软件。其中最重要的系统软件是操作系统。

操作系统

当我们运行程序时,一般不直接与硬件打交道,而是通过操作系统去访问键盘、内存等。所以操作系统有两方面的作用:

  1. 作为机器的扩展 屏蔽硬件的差异性; 提供抽象层,比如进程、虚拟内存、文件等

  2. 作为资源的管理者 对CPU、I/O设备、内存等资源进行管理,避免被滥用

进程与线程

进程是操作系统对正在运行中程序的抽象,也可以理解为对处理器的抽象。在一瞬间,CPU只能运行一个进程,但是在多道程序设计系统中,每个进程各运行几十或几百毫秒,那一秒内CPU就可以同时运行多个进程,给人产生了并行的错觉。操作系统需要记录进程运行时的信息,包括程序计数器(PC)、寄存器、变量的当前值等,以便在进程切换后对其进行恢复。

一个进程包含一个线程,对现在的系统而言,通常一个进程有多个线程执行不同的任务,这些线程是共享进程资源的。线程是操作系统进行运行调度的最小单位。操作系统对进程的调度实际上就是对进程里面线程的调度,它包含在进程当中,是进程中实际运行工作的单位。

虚拟内存

虚拟内存是一个抽象概念,它为进程提供了假象,认为它拥有整个主存,但实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。每个进程看到的内存都是一致的,称为虚拟地址空间。

文件

文件就是字节序列。“一切皆是文件”是 Unix/Linux 的基本哲学之一。不仅普通的文件,目录、字符设备、块设备、 套接字等在 Unix/Linux 中都是以文件被对待;它们虽然类型不同,但是对其提供的却是同一套操作接口。每个I/O设备,包括磁盘、键盘、显示器、甚至网络,都可以抽象成文件,在Unix/Linux系统中,系统中所有的输入输出都是通过调用IO系统调用来完成

参考资料

  1. 百度百科-虚拟内存

  2. 豆瓣-深入理解计算机系统(原书第3版)

发布于: 2020 年 07 月 05 日 阅读数: 5
用户头像

引花眠

关注

还未添加个人签名 2018.06.11 加入

还未添加个人简介

评论

发布
暂无评论
操作系统概览