[分享] 操作系统篇之为什么要使用操作系统
798 查看
9 回复
 楼主 | 发布于 2018-08-03 | 只看楼主
分享到:
在没有操作系统的情况下,C 语言是以函数为单位实现功能的,一个函数一个函数串行

的执行,一个完整的功能会由多个函数共同完成。然而当软件系统的功能变得多而庞大的时

候,这种方法几乎无法使用,因为此时各个功能之间必然会有千丝万缕的联系,不可能依次

串行的完成每个功能,各个功能必然需要交替执行。以函数为功能单元的程序很难在执行一

个函数的时候转而去执行另外不相关的函数,即使是使用一些技巧实现了,也会使整个软件

结构变的混乱不堪,不利于软件的维护和扩展。函数的工作方式就决定了并不适合以它为功

能单元运行复杂的程序,在这种情况下就需要使用操作系统了。操作系统是对函数运行管理

的系统,它可以在一个函数还没有运行完就转而去执行另外一个函数,并且还可以恢复到原

来的函数继续执行,这样就可以根据需要及时调整到需要运行的函数来满足各种要求。
(0 ) (0 )

嵌入式学习

回复 举报

楼主 | 回复于 2018-08-03 沙发

一、操作系统的任务调度功能。


以大家熟悉的 Windows 为例,Windows 上运行了很多软件,有办公的、看电影的,玩


游戏的,等等等等,太多了。你想过没有,它们是怎么运行的?它们是由不同的厂商开发的 ,


它们之间如何协调?谁先运行谁后运行?这些就是操作系统要做的事。这些应用程序从宏观


上看是在一台电脑上同时运行,但从微观上看它们是串行运行的。电脑的 CPU 每一时刻只


能运行一个应用程序,运行很短的时间之后,CPU 又去运行下一个应用程序,周而复始的


这么运行。由于 CPU 的速度特别快,因此每个应用程序在很短的时间都可以运行很多次,


以人的感觉来说,根本就感觉不到 CPU 在各个应用程序之间切换运行,因此我们就觉得电


脑上的每个应用程序都是在同时运行。就像看电影一样,由于影片的刷新频率快过了人眼睛


的可分辨频率,因此我们就觉得电影是在连续播放。
(0 )
评论 (0) 举报

楼主 | 回复于 2018-08-03 2#

二、这些都是操作系统的文件管理功能。

除此之外,操作系统还有很多功能,比如说文件系统。我们存储的游戏、电影文件是如

何放在硬盘上的?为什么我们将几 G 的文件剪切到同一个硬盘分区上时间很短,而剪切到

另外一个硬盘分区上则时间很长?为什么在 Dos6 下看不到 NTFS 分区的文件?
(0 )
评论 (0) 举报

楼主 | 回复于 2018-08-03 3#

三、操作系统的设备管理功能。


现在我们在 Windows 环境下,可以把一块显卡 、


声卡直接插到主板上,然后启动电脑,安装驱动程序,甚至不需要安装驱动程序就可以使用


了。你可能认为电脑就应该是这样的,但实际上,这简单的背后是操作系统为我们做了很多


工作,在过去操作系统并不完善的日子,我们需要手动为硬件分配物理地址、中断等资源 ,


极其麻烦。
(0 )
评论 (0) 举报

楼主 | 回复于 2018-08-03 4#

对于功能简单的小系统设备来说,我们只需要设计一个 while 死循环就可以完成所有的
软件功能,这种小系统一般没有复杂的外部输入,例如电子表,外部输入只有调节时间的按


钮,软件的主要功能也只是读取定时器的数值并显示出来。我们以伪码的形式描述一个这样


的软件结构:



  1. int main(void)
  2. {
  3. while(1)
  4. {

  5. 1.判断按键输入并执行相关操作。
  6. 2.读取定时器数值。
  7. 3.刷新液晶屏显示时间。

  8. }
  9. }
复制代码


这个小系统的运行几乎不依赖于外界的输入,只要按照软件设定好的顺序周而复始的执


行就可以实现所有功能。


但如果系统功能复杂一些统,使用上述的软件结构就显得有些不适合了。例如我们常用


的手机,一般手机处于不通话的状态下,屏幕是黑的,但这并不代表软件没有工作,此时软


件需要检测按键是否被按下,闹表定时是否到了,是否有电话来了等等,假设用户在使用手


机上网,同时又在听音乐,而电话又来了,你想想软件这个 while 循环应该如何去写?手机


中软件遇到的情况可要比我列出的上述情况复杂的多,仅仅使用这个 while 循环是无法完成


的。
(0 )
评论 (0) 举报

回复于 2018-08-03 5#

对职业发展也有好处啊;
(0 )
评论 (1) 举报

回复于 2018-08-03 6#

会操作系统的都是另一个境界了
(0 )
评论 (1) 举报

回复于 2018-08-03 7#

感谢分享
(0 )
评论 (1) 举报

回复于 2018-08-03 8#

支持下,谢谢分享!
(0 )
评论 (0) 举报

回复于 2018-08-29 9#

感谢分享,欢迎关注我,资料持续更新中。
(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部