Linux内核体系结构
作者:互联网
5.1 为什么要引入操作系统?
拿JZ2440开发板来说,我们写好开发板的每一个模块的测试程序(led、uart、irq、timer、lcd、adc、i2c、spi...),并且开发出了两个应用程序:
家庭相框和记事本。显然,两个应用程序都需要用到lcd模块,同时运行肯定不行。
假定以下几种使用场景:
(1)我需要向朋友展示我的家庭相框。
(2)我需要使用记事本写日记。
(3)朋友看完我的相册之后,突然想观看我的日记。
对于(1)我们可以直接打开家庭相框程序,使用完之后关掉。
对于(2)我们可以直接打开记事本程序,使用完之后关掉。
对于(3)我们可以先(1),后(2),除此之外我们还有其他的办法了嘛?
方法一:
我们可以在main.c函数里面先执行执行家庭相框程序,延时...,再执行记事本程序。
方法二:
我们可以使用中断处理方式,即先执行家庭相框程序,然后触发中断,跳转到记事本程序。
方法一可行但是不稳妥!方法二可行,但是但是,要考虑内存的大小,因为触发中断的时候,家庭相框的程序暂时就运行停止了,接着就去运行记事本程序,等到记事本程序运行完之后,再继续接着运行家庭相框的程序。
问题:
方法二中,中断产生时家庭相框的前一部分程序停止运行了,可是家庭相框的后一部分程序暂时不需要运行,但是又存入了内存,浪费了部分内存空间。
两个、三个、四个...n个应用程序呢?那该浪费多少内存空间呢?
显然,对于Non-OS系统,要想实现多个应用程序的同时运行,显然很难管理内存空间,而且也很复杂。
于是,为了满足多样化的需求,我们引入了OS系统,来帮助我们管理内存。
具体是怎么管理的,我们后期揭晓…^_^
标签:运行,相框,程序,家庭,应用程序,内核,Linux,记事本,体系结构 来源: https://www.cnblogs.com/huanian/p/12560478.html