总结一下对操作系统的学习[1]----------概论

最近在移植一个应用到没有操作系统的处理器上,之前对操作系统的认识一直很浅,搞不清楚操作系统到底起到一个什么作用,这回通过在没有操作系统的处理器上运行程序,反而对操作系统有了新的认识,下面我通过《现代操作系统(第三版)》来总结一下我所理解的操作系统。

操作系统的功能是什么?操作系统的功能是连接应用程序与底层硬件。操作系统作为一个中间件为应用程序提供了一个抽象的计算机模型,其中最重要的三个抽象的概念是进程、地址空间、文件。

进程是对CPU的抽象,地址空间是对物理内存的抽象,文件是对磁盘信息的抽象。下面简单介绍一下这三个概念。

进程本质上是一个正在运行的程序,进程有其自己的地址空间,在这个地址空间中有可执行的程序代码(机器码)、数据、堆栈。除此之外,进程还有自己的资源集,包括寄存器,打开文件的清单,进程的清单及运行该程序所需要的其它信息。进程和程序的区别在于进程是一个动态的过程,而程序只是一堆静态的代码。

打开windows的任务管理器,如图一所示,windows系统运行着很多进程,但是计算机只有一个CPU,于是操作系统周期性的挂起一个进程然后运行另一个进程,但在任一时刻,都有一个进程是全部占领了CPU的,所以对进程而言,操作系统给了进程一个独占CPU的错觉。

当一个进程被挂起后,在随后的某个时刻,该进程再次启动的状态必须与之前的状态相同,这就要求挂起该进程时所有的信息必须保存下来。在操作系统中,与进程有关的所有信息,均存放在操作系统的一张表中,称为进程表(process table),进程表是数据(或链表)结构,当前运行的每个进程都占用表中的一项。

                                                                         


地址空间:程序的运行是将程序代码加载到内存中执行的,当运行多个程序时,多个程序的寻址可能会相互干扰,为了解决这个问题,操作系统引入地址空间这个抽象概念,由操作系统实现地址空间和物理空间之间的映射和管理,从而给进程一个独占整个内存的假象。

文件:文件是操作系统的又一重要的抽象概念,通过文件给程序员一个清晰的独立于设备的抽象模型。


如果没有这些抽象会怎么样呢?如果在一个裸机上实现应用,没有进程的概念就只能运行单进程程序;没有文件系统就不能使用fopen、fread等函数,只能通过将所需的文件加载的内存指定地址,然后从指定地址读入数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值