2013年暑期补课计算机操作系统原理

2013年暑期补课计算机操作系统原理

什么是操作系统?计算机是如何工作的?操作系统又是如何在计算机上运行的?从这些基本的问题出发,我们一起探索操作系统的奥秘,并动手编写一个自己的操作系统内核,在这个过程中我们需要学习使用C语言、简单的汇编和嵌入式汇编、Linux操作系统的基本接口等。当然还要庖丁解牛式地一一考察学习进程、进程调度、内存管理、文件系统、I/O设备等操作系统的主要构成和相关理论。

课程目标

  1. 记忆和理解操作系统的一些基本概念和术语,能使用操作系统提供的接口编写简单的程序;
    • 比如:函数调用堆栈、中断、进程与线程、竞争条件、临界区、变量锁、信号量、互斥锁、多队列动态优先级调度、可抢占/不可抢占、地址空间、线性地址、虚拟内存、交换、分页、分段、TLB及缓存技术、相对路径、File System Layout
    • 基本的X86汇编指令、Linux操作系统接口fork\exec,sigaction,semget\semctl\semop,pthread,File Operations
  2. 能准确理解操作系统工作的核心机制,能编写或读懂一个简化的操作系统内核;
    • 中断信号发生后在堆栈上产生的效果、进程切换的方法、时间片轮转RR调度算法
  3. 在软件系统设计中常用的一些基本算法能够透彻理解并能比较其优劣和用途;
    • 比如:忙等待互斥的几种算法、生产者消费者问题的几种算法、空间(内存和磁盘)管理(索引方法、空间使用效率、查询速度、空闲块管理等)

课程计划

Chapter 1 Introduction

  • What Is An Operating System
  • The history of Operating System
  • Computer Hardware Review
  • Important concepts of Operating System

Chapter 2 Processes and Threads

  • Process
  • Threads
  • Race condition/synchronization
    • Mutual exclusion,Critical region
    • Mutual Exclusion with busy waiting
    • Semaphores & Mutexes
    • Classic IPC Problems
  • Process scheduling
    • Preemptive/Nonpreemptive
    • Scheduling Algorithm Goals
    • Round-Robin Scheduling
    • Multiple Queues and Dynamic Priority scheduling

Chapter 3 Memory Management

  • memory hierarchy,memory abstraction,address space
  • swapping,virtual memory
  • paging, page tables, page replacement algorithm
  • TLB,multilevel page tables,inverted page tables
  • segmentation,linear address,segmentation with paging

Chapter 4 File Systems

  • File,File attributes,File Operations
  • Directory,Hierarchical Directory Systems,Relative path
  • File System Layout,Contiguous Allocation,Linked List Allocation Using a Table in Memory
  • i-nodes,Implementing Directories,The UNIX V7 File System

Chapter 5 Input/Output

  • Memory-mapped I/O & I/O Ports space
  • Direct Memory Access (DMA) & Interrupts
  • Programmed I/O & Interrupt-Driven I/O & I/O Using DMA
  • I/O Software Layers

总结:操作系统架构和系统执行过程

实验作业及课程项目

  • 实验一:Linux操作系统的安装和使用
  • 实验二:理解函数调用堆栈完成一个简单的嵌入式汇编程序实现函数调用和返回
    • 完成顺序执行的嵌入式汇编代码实现函数调用堆栈变化,范例代码example_c.cexample_asm.c
    • 现场检查方法:指定某行汇编代码给出当前堆栈内容;正常函数调用中的call和ret的功能在我们的汇编代码中是怎么实现?
  • 实验三:编程实现一个简单的Shell程序
    • 理解进程创建、程序加载过程、进程间通信等相关原理,实验三参考资料
    • 现场检查方法:运行程序,查看效果;子进程与父进程为什么在if else语句下能同时执行,执行顺序是否一定,与什么有关?解释管道工作流程。
  • 实验四:编写my_realloc函数模拟realloc
    • 理解动态内存分配背后相关操作系统原理。
    • 注意: my_realloc函数的参数可能与realloc不同,请根据需要自己设计my_realloc的参数
    • 现场检查:demo,提问my_realloc函数与系统realloc函数的背后工作机制的相关问题
  • 实验五:模拟cp命令的功能实现mycp程序
    • 将一个文件复制到目标文件(或目录)中,命令格式:mycp 源文件名 目标文件名(或目录)
    • 将一个目录下的所有文件复制到目标目录中,命令格式:mycp 源目录 目标目录
    • 线程检查方法:Demo & 代码分析
  • 实验六:哲学家就餐问题引起的死锁及多线程同步方法解决哲学家就餐问题
    • 实验资料
    • 现场检查:1. 运行示例程序,仿真出死锁现象。2. 运行演示解决死锁的算法,并解释相关代码。
  • 实验七:I/O设备驱动
    • 实验资料
    • 读懂源程序,了解驱动程序编写的框架
    • 学会加载和卸载驱动
    • 编写用户态测试程序,调用用户态下的open、close、read、write、ioctl函数,验证自己对程序的理解是否正确
    • 现场检查:加载驱动,运行用户态测试程序,解释运行结果与驱动源代码之间的关系
  • 课程项目:mykernel release 1 release 2
    • 透彻理解release 1 & 2的进程切换方法、进程调度时机、中断处理程序的函数调用堆栈等
    • 现场检查:运行演示Demo + Q&A
    • 额外加分:为mykernel提供新功能(操作系统原理任一知识点)并通过github提交给我代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
操作系统面试题2023的参考资料包括:系列文章《2023前端大厂面试题之JavaScript篇(1)》到《2023大厂高频面试题之项目篇》,作者在2022暑期准备面试过程中断断续续准备的内容,最终上岸厦门大学。,该资料的目录包括数据结构、算法、计算机语言、计算机网络、操作系统、其他专业课(数据库、软件工程、计算机组成原理、密码学)和数学等方面的内容。 根据引用,该资料还包括操作系统的概述、特征、功能,进程管理,进程与线程的区别和联系,进程调度算法,进程间通信方式,死锁,内存管理,动态分区分配算法,覆盖和交换,虚拟技术以及地址转换过程等。 因此,对于操作系统面试题2023,可以参考这些资料中关于操作系统的相关内容,包括操作系统的概述、特征、功能,进程管理,进程调度算法,内存管理等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [2023大厂高频面试题之操作系统篇](https://blog.csdn.net/zag666/article/details/124520067)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [2023届计算机保研面试基础专业问题(数据结构、算法、计算机语言、计算机网络、数据库、操作系统、数学)](https://blog.csdn.net/Magnolia_He/article/details/127697469)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值