Skip to content

Latest commit

 

History

History
76 lines (45 loc) · 4.62 KB

01-2-spoc-discussion.md

File metadata and controls

76 lines (45 loc) · 4.62 KB

lec1: 操作系统概述


提前准备

(请在上课前完成)

  • 完成lec1的视频学习和提交对应的在线练习

  • git pull ucore_os_lab, ucore_os_docs, os_tutorial_lab, os_course_exercises in github repos。这样可以在本机上完成课堂练习。

  • 知道OS课程的入口网址,会使用在线视频平台,在线练习/实验平台,在线提问平台(piazza)

  • 会使用linux shell命令,如ls, rm, mkdir, cat, less, more, gcc等,也会使用linux系统的基本操作。

  • 在piazza上就学习中不理解问题进行提问。

思考题

填空题

  • 当前常见的操作系统主要用__c,c++,ASM__编程语言编写。
  • "Operating system"这个单词起源于__Operator__ 。
  • 在计算机系统中,控制和管理__资源应用__ 、有效地组织__程序__运行的系统软件称作__操作系统__ 。
  • 允许多用户将若干个作业提交给计算机系统集中处理的操作系统称为__批处理__操作系统
  • 你了解的当前世界上使用最多的操作系统是__linux__ 。
  • 应用程序通过__系统调用__接口获得操作系统的服务。
  • 现代操作系统的特征包括__并发__ , 共享虚拟异步
  • 操作系统内核的架构包括__宏内核__ , 微内核外核

问答题

  • 请总结你认为操作系统应该具有的特征有什么?并对其特征进行简要阐述。

    虚拟性:虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。在操作系统中利用了多种虚拟技术,分别用来实现虚拟处理器、虚拟内存和虚拟外部设备。 并发性:并发是指两个或多个事件在同一时间间隔内发生,在多道程序环境下,一段时间内宏观上有多个程序在同时执行,而在同一时刻,单处理器环境下实际上只有一个程序在执行,故微观上这些程序还是在分时的交替进行。操作系统的并发是通过分时得以实现的。操作系统的并发性是指计算机系统中同时存在多个运行着的程序,因此它具有处理和调度多个程序同时执行的能力。 异步性:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。异步性使得操作系统运行在一种随机的环境下,可能导致进程产生于时间有关的错误。但是只要运行环境相同,操作系统必须保证多次运行进程,都获得相同的结果。 共享性:系统中的资源可供内存中多个并发执行的进程共同使用。 持久性:通过实现文件系统,操作系统可以将程序以及数据存储在磁盘等存储介质中。 详细解释可以参考操作系统的特征。

  • 为什么现在的操作系统基本上用C语言来实现?为什么没有人用python,java来实现操作系统?

  1. c语言有出色的可移植性,能在多种不同体系的平台上运行。
  2. 简洁紧凑,运行效率高。
  3. 容易嵌入汇编。
  4. 扩展方便。

可选练习题


  • 请分析并理解v9-computer以及模拟v9-computer的em.c。理解:在v9-computer中如何实现时钟中断的;v9 computer的CPU指令,关键变量描述有误或不全的情况;在v9-computer中的跳转相关操作是如何实现的;在v9-computer中如何设计相应指令,可有效实现函数调用与返回;OS程序被加载到内存的哪个位置,其堆栈是如何设置的;在v9-computer中如何完成一次内存地址的读写的;在v9-computer中如何实现分页机制。

  • 请编写一个小程序,在v9-cpu下,能够输出字符

  • 输入的字符并输出你输入的字符

  • 请编写一个小程序,在v9-cpu下,能够产生各种异常/中断

  • 请编写一个小程序,在v9-cpu下,能够统计并显示内存大小

  • 请分析并理解RISC-V CPU以及会使用模拟RISC-V(简称RV)的qemu工具。理解:RV的特权指令,CSR寄存器和在RV中如何实现时钟中断和IO操作;OS程序如何被加载运行的;在RV中如何实现分页机制。

    • 请编写一个小程序,在RV下,能够输出字符
    • 输入的字符并输出你输入的字符
    • 请编写一个小程序,在RV下,能够产生各种异常/中断
    • 请编写一个小程序,在RV下,能够统计并显示内存大小