知识思维导图,标记一下
1、批处理系统、分时系统和实时系统各有什么特点?你能简单的分析下各操作系统采用了哪些设计思路来实现这些特点呢?
批处理系统的特点是资源利用率高,系统吞吐量大。采用的技术是降低CPU切换频率,比如一个作业运行完成或主动释放CPU后再调度下一个作业运行,以减小系统开销;采用多道程序设计技术提高资源利用率等。
分时系统的特点是具有强交互性和及时性。采用的技术是引入时间片,多个用户请求分时共享系统资源。
实时系统的特点是具有高可靠性和高及时性。采用多级容错技术保证高可靠性,基于任务的截止时间或优先级来分配CPU。
2、什么是系统调用?以C语言中的printf()为例,说明Linux系统处理系统调用的详细过程。
系统调用也叫程序接口,是应用程序请求OS内核完成某功能时的一种过程调用,是用户程序对OS内核功能进行调用的一种手段。
Linux中系统调用的处理过程如下:
1)首先有封装例程设置系统调用功能号和参数,并存到相应寄存器中;
2)执行封装例程中的int 0x80指令,系统产生软中断(或陷入),由中断硬件完成部分现场信息保护:PSW的值和PC寄存器的值;并通过中断向量转向一个中断处理程序system_call()完成其他CPU现场信息的保存:如陷入类型、参数表指针、其他CPU寄存器的值等;
3)使用系统调用功能号查找系统调用入口表,找到相应系统调用的服务例程的入口地址sys_printf();
4)执行系统调用服务例程sys_printf(),完毕后返回执行成功与否以及成功时的执行结果给调用者;恢复被中断进程或新调度进程的CPU现场,返回被中断进程或新调度进程执行。