您的位置:首页 > 其它

操作系统overview

2016-04-19 13:15 225 查看
操作系统就是用来管理硬件的软件,因为现实中人们用计算机来解决问题,但是不同的问题对硬件的依赖是不一样的,所以人们为了更好地在特定的场景使用好计算机,和在任何场景都能使用好计算机,于是就在硬件上设计出了一层软件,在这庞大的软件中,有些是对硬件的抽象,有些是对解决问题方式的抽象,所以操作系统学习我认为应该要抓住主要问题,一些细节扫过就行了。

下面说说我看到的关键且重要的概念。

操作系统的结构。计算机网络有OSI模型,TCP/IP模型,操作系统这个庞大的系统应该也要有科学的结构才行吧。但是呢,操作系统是一个比较大的概念,不同的机器结构会不同,不存在”全球统一的操作系统”的说法,我觉得作为学习的话,看看UNIX系统的结构就差不多了,其他的也厉害不到哪里去。据我现在所知,UNIX系统运行的时候,应该是分为内核和用户态,用户态通过系统调用来进入内核,内核就是直接跑在CPU上的程序,至于怎么跑的和怎么调用的就不清楚了。还有一个值得注意的是虚拟机的结构,一个机器上可以装多个同时运行的操作系统,我们平常买的VPS就是在这种机器上运行的,它装的”操作系统”就是能把主机分成若干个抽象出来的独立的主机,各主机的资源分配和互不干扰是通过新建一个外核的层次来实现的。

进程与线程。如果人们想让计算机跑多个程序,首先要先让这个想法实现,利用的方法是cpu在多个进程之间来回切换,想法实现了之后就去具体设计这个概念了,从创建,到执行,到终止都要设计好。有了进程为什么还要有线程这个概念,因为人们需要一个,就是能共享同一个地址空间和所有上面的数据的玩意,于是就从进程里面弄出来个线程。至于为什么需要,和它的工作原理现在还不知道。

存储管理器。这里的存储管理是对编程人员的抽象,而不是计算机组成原理里面的分层存储器模型。看看这些科学家是怎么利用抽象,做出便于程序员使用的存储管理器吧。先从它的目标来看,它是为了管理计算机的内存,在使用的和未使用的,要释放的和要分配的,统统都由它来管理。它就像一个监视窗口,洞察着所有的内存的动向。

I/O管理。主要想实现的东西是,让程序员能用同一种方式存取任何设备的文件。里面的细节太多了,没弄明白。

死锁。这个是对进程的资源分配调度了,有点像总线的那个控制中心一样。死锁就是两个进程互相去申请访问对方已经占用的资源,然后都被阻塞在那里,进程无法继续走下一步也就永远无法终止了。这简直像是操作系统的bug。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  操作系统