操作系统的简单理解

什么是操作系统呢,现在大家有着各自不同的看法,我比较赞同下面的说法,即:所谓的操作系统,应该是指管理了系统的硬件资源,并向上层提供接口的一个软件。而在系统中的硬件资源,不外乎有CPU、内存以及硬盘和其他外部设备等等的东西,从而也就产生了操作系统代码中的所谓的CPU管理,内存管理,文件系统等部分,其实这些可以用一个名称代替,那就是:资源管理。当然,有了资源管理还不行,我们人还要使用这些资源,所以,操作系统还需要向我们提供接口。

这样看来,操作系统应该具有两个部分的功能:1)资源管理;2)对外接口。

在我们学操作系统的时候,不外乎会从远古时代的大型机介绍到现在的PC机,以及现在的大型机,而操作系统也越来越复杂,因此到现在,能够通读linux2.*的源代码已经是非常困难的事情。但是,现在我觉得,读源代码只要有方法,能由浅入深,慢慢深入,还是有可能在一段时间内阅读并理解linux源代码的。怎么样由浅入深呢?或许这个就是每个人读源代码的方法了。在《linux内核源代码情景分析》中,是首先从内存管理介绍起,然后是中断异常,然后是进程管理,文件系统开始介绍;而在《深入理解linux内核》书中,则是把整个操作系统中比较重要的各个部分分开介绍,因此有很多章节,例如内存管理部分就包括系统的内存管理,交换释放内存的方法,进程使用内存的方法等部分。这些介绍方法肯定都有可取之处,但是由于每个人对linux的理解肯定是不一样的,因此每个人需要找到属于自己的理解方法。


对linux的理解,也就是对操作系统的理解,上面已经说了,学术上对操作系统的理解各不一样,而我的理解是:操作系统其实就是由一个个任务构成的。当然,现在为了时尚一点,会把“任务”说成是进程,或者更时尚一点,是线程。不管怎么说,其实质就是“任务”——很多个能完成某项工作的程序而以——例如,某个“任务”负责在固定时间内查杀某些不良任务;而又有某个“任务”负责在固定时间内去祸害其他任务。为了追赶潮流,下面,我们也就把“任务”说成是进程,或者线程。

这样看来,所谓的操作系统,就是进程的集合!就是为了完成若干种任务而形成的若干程序的集合!好了,现在按照我的理解,操作系统就是一堆堆任务了,那么这些任务总要相互交互吧,总不能“老死不相往来”吧!所以为了处理任务间的交互,防止任务间的互相争夺资源,需要完成死锁和饥饿的处理问题;当然,各个任务之间的通信也是必须的了;很多时候,系统中的处理器就这么多,不可能给每个任务都分配一个处理器吧,所以呢,任务之间的调度问题也就必须了;任务总不能是“空中楼阁”吧,总需要着落之地吧,而且我们使用malloc这么爽,那malloc总不能直接调度内存资源去吧,所以还需要有一些任务首先管理了系统中的所有内存资源,然后接收malloc的请求,分配一些内存资源去,所以就有了系统所谓的内存管理;同理,也就需要文件系统管理了。好了,现在可以得出结论,系统中最重要的就是任务,也就是进程了!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值