操作系统概述(一)操作系统的四大特征

首先我们需要解决的问题是操作系统是什么,其本质上就是一段计算机程序,用于管理计算机的硬件和软件资源,操作系统需要处理很多事务,如管理与配置内存、决定系统资源的优先次序、控制I/O设备等。一个计算机系统可以分成三层,如下图所示:


计算机系统的组织结构图

我们将计算机操作系统的特征分为四个方面,下面将通过几段程序,依次进行说明。

一、CPU的虚拟化

编写如下的c程序


程序运行指令
common.c
common.h
cpu.c

cpu.c的功能是打印你输入的字符串,然后在一个无限循环的函数里spin一秒钟,这里提一下在运行了上述的函数之后,需要使用指令

                                    killall cpu

来终止整个程序的运行,cpu是指生成的可执行文件的名字。我们观察结果会发现虽然我们同时运行了多个程序,但是所有程序都会输出结果,结果是cabcabcab....这样子的无限字符串序列。即使我们只有一个物理cpu,这种现象依然存在,即说明操作系统通过某种机制令每个应用程序都感觉自已拥有整个cpu,会直接执行。

二、内存的虚拟化

编写如下的程序,


mem.c



输出结果中的pid表示进程的id,在操作系统中每个进程都有系统分配的独一无二的id来做相互之间的区分,从上图的结果我们可以发现二者是并行实现的,而且二者被分配了同样的地址!是不是很神奇!这说明cpu通过某种机制让应用有完整的虚拟地址空间。

三、并发性

程序如下,


运行结果
threads.c

在threads.c中我们创造了两个子线程,每一个线程都对一个共享的全局变量做设定次数的 ++ 操作,但是我们发现这个结果是不确定的,这说明这两个线程的执行并不是严格并发的,操作系统需要去控制线程的并发。

四、持久性

程序如下:


执行操作
io.c

io.c创建了一个文本文档,并且在里面存储了字符串,无论我们用什么物理存储装置,我们都可以访问到这个路径以及里面的文件,这说明操作系统提供了文件系统来做一个持久性的存储。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容