操作系统结构
1.shell(外壳)--命令解释程序
有的操作系统在其内核部分包括命令解释程序。其他操作系统,如WindowsXP和UNIX,将命令解释程序作为一个特殊程序,当一个任务开始时或用户首次登录时,该程序会运行。
命令解释程序的作用:获取并执行用户指定的下一条命令。提供的命令主要是操作文件的:create,delete,list,print,copy,execute。
2.系统调用时向操作系统传递参数方法:
第一种、通过寄存器来传递参数;
第二种、当参数比寄存器多时,保存在内存的块和表中,并将块的地址通过寄存器来传递(如Linux和Solaris);
第三种、参数通过程序放在或压入栈中,并通过操作系统从栈中弹出(这种方法不限制传递参数的数量或长度)。
注:Java程序中不可能直接进行系统调用,但是调用native的Java方法实际上调用了用C/C++编写的本地函数,这些本地函数可以调用主机的系统调用。显然是用native的java方法并不是平台无关的。
3.系统调用的类型:
进程控制:结束/放弃;装入/执行 ;创建/终止进程;取得/设置进程属性;等待时间;等待/唤醒事件;分配/释放内存
文件管理:创建/删除文件;打开/关闭;读/写/重定位;取得/设置文件属性
设备管理:请求/释放设备;读/写/重定位;取得/设置设备属性;逻辑连接或断开设备
信息维护:读取/设置时间或日期;读取/设置系统数据;读取/设置进程、文件或设备属性
通信:创建、删除通信连接;发送、接收消息;传递状态信息;连接或断开远程设备。
两种常见的通信模型:消息传递模型和共享内存模型(线程)。
4.系统程序
系统调用的简单的用户程序
文件管理:创建、删除、复制、重新命名、转储、打印、列出和操作文件和目录
状态信息:从系统中得到日期、时间、可用或磁盘空间的数量、用户数或类似状态信息。更为复制,提供详细的性能、登录和调试信息。例如注册表--被用于存储和检索配置信息。
文件修改:创建和修改文件,查找文件内容或完成文本转换。
程序设计语言支持
程序转入和执行
通信:进程、用户和计算机系统之间创建虚拟连接的机制。
5.微内核(microkernel)
所有非基本部分从内核(操作系统)中移走,并将它们作为系统程序或用户程序实现。这样得到更小的内核。微内核通常包括最小的进程和内存管理以及通信功能。
微内核好处之一:便于扩充操作系统。缺点:由于系统功能总开销的增加而导致系统性能的下降。