到此为止,我们学习编写操作系统的内容全部结束了。虽然如此,但操作系统内在的知识和技术还浩如烟海。我们所学习的内容也不过是沧海一粟而已。希望读者能够通过本教程的学习对操作系统的相关知识有所提升,并通过自己的努力写出一个自己风格的操作系统。本教程的LidqOS中并没有实现文本编辑器(类vi/vim)程序和C语言编译器(类gcc)。文本编辑器的实现相对简单,而自己编写一个C语言的编译器可不是一件容易的事情。有兴趣的读者可以根据自己的能力来尝试实现它们。
另外,在实现了信号量、多线程功能之后,作者编写了一个小程序来测试内核对信号量和多线程的管理功能:
在一个冰激凌店中经理、店员、收银员和顾客四个角色。从店外走进来十个顾客来购买冰激凌。每个顾客需要买一到五个冰激凌不等。当有顾客购买冰激凌时,需要在三个收银员面前排队成三队付款购买冰激凌。每当收银员接收到顾客购买冰激凌后通知一个店员来制作,店中共有五名店员为顾客制作他们所要购买的冰激凌。当店员将冰激凌制作完成后,必须到2名经理办公室交给经理审核,这两个经理公室在同一时刻只能一个店员进入,不可同时进入两个店员,二名经理办公室同时只可对二个店员制作的冰激凌做审核。如果审核不通过,店员则需要重做;审核通过后才能交给顾客。店员一次只能制作一个冰激凌,做好一个就交给经理审核一次,经理一次也只能审核一个冰激凌。顾客拿到自己的全部的冰激凌之后才能离开冰淇淋店。当所有顾客离开之后冰激凌店关门打烊,程序结束。
这是一个非常有趣的问题,请你不要参看源代码试着自己编写一下这个程序,你会有很大的收获。作者实现这个问题的程序运行结果如下:
Copyright © 2015-2023 问渠网 辽ICP备15013245号