操作系统定义
- 用户角度,操作系统是一个软件
- 管理应用程序
- 为应用程序提供服务
- 杀死程序
- 资源管理[CPU内存外设]
- 管理外设、分配资源
- 硬件之上、应用程序之下
kernel内部组件包括:
- CPU调度器
- 物理内存管理
- 虚拟内存管理
- 文件系统管理
- 中断处理、设备驱动
kernel特征:
- 并发
- 同时存在多个运行的程序,需要os管理和调度
- 共享-同时访问
- 虚拟-cpu虚拟为进程、磁盘虚拟为文件、内存虚拟为地址空间
- 异步-程序的执行不是一贯到底,而是走在停停。
并发:一段时间多个任务在执行。
并行:一个时间点多个任务在执行。多个CPU才可能出现
操作系统结构
- 微内核 缺点:性能
- VMM:硬件上跑多个操作系统,原因就是CPU效率太高,IO效率太低。
操作系统类型
- unix最早的->mac ios
- Linux(类Unix)->android ubuntu redHat
- Windows
操作系统启动
- disk:存放os
- BIOS:基本IO处理系统
- bootLoader:加载os
- CS:段寄存器
- IP:指令寄存器
- 合在一起可以指定具体的内存地址
- BIOS-启动-bootLoader-启动-os
- 具体参考(一)
2.2 中断、系统调用(systemcall)、异常(Exception)
中断表:
- key 每种中断对应的码(键盘、鼠标)
- value 中断服务历程的起始地址(找到地址后转跳转到该地址,然后执行)
系统调用(每种系统提供给上层不同的API接口):
调用的层级关系:
java=》JVM=》POSIX API(如果运行在Unix、Linux、Mac OS上)=》os
java=》JVM=》win32 API(如果运行在Windoows上)=》os
- 用户态
- 无法直接访问系统指令
- 内核态
- 可以直接调用系统指令
系统调用相当于从用户态到内核态的一个转化。