Computer System Laboratory

- 2016 Fall, CSIE 3311, 二789, 德田202

- 薛智文, cwhsueh+CSL@csie.ntu.edu.tw

核心能力關聯

  • 具有資訊、數學、及科學知識之能力
  • 具有資訊理論、硬體、軟體、與應用之專業知識
  • 能使用軟體工具或元件解決問題
  • 能分析、設計、實作、整合、測試、與評估資訊系統
  • 具備良好溝通與團隊合作之能力
  • 參與研究計畫並具備報告撰寫及科技簡報之能力

Forum

Announcement

  • 0913: Lectures begin. Please group here.
  • 0926: Due to Typhoon MEGI, let's postpone Lab 2-7 one week, as the revised course outline. Take care!
  • 1104: No lab in Midterm. See you the next week, course outline.
  • 1114: We have lab tomorrow. Please do your 校慶 services first. Let TA know if you can not come. Schedule another time to do it.
  • 0116: Final grades are here.

LAB Reports

Questions

  • No need to copy these questions to your report.
  • Lab1
    1. What restrictions cause the bootloader being multistage?
  • Lab2
    1. U-Boot has many persistent environment variables. The variable “bootdelay” is one of the most important. What happens when it is set to 0? You don't need to test it on your RPi.
    2. Consider the following senario: You are developing a bootloader and an OS kernel, both of which run on x86-64. You want to do this work on a x86-64 Linux, that is, you write C and assembly code and compile them on a x86-64 Linux. If you use the native GCC provided by the x86-64 Linux to compile your code, what trouble will you get?
  • Lab3
    1. No supervisor is used to manage the computing system in this lab. Please do a survey and give your introduction on Real Time Operating System; try to figure out why(e.g., under what situation) it(can) can(it) be a good choice for such kind of computing system in this lab
  • Lab4
    1. The question in Lab requirement: how can you make the resolution of ucos timing higher? Please point out what you've done to the source code of ucos to achieve this and give it an explanation.
    2. Are you able to simulate a timer/alarm based on the knowledge gained from this lab? If so, please explain your method. On the other hand, please give it a survey on how ucos-II/III achieve this (using interrupt and the Timer Task).
  • Lab5
    1. Why is it necessary to prepare the emulator qemu-arm-static and the module binfmt_misc before chroot into the filesystem?
  • Lab6
    1. Explain how the function loop() is called in exercise 2. You may refer to the link in the reference page.
    2. How to remotely debug from host machine?
  • Lab7
    1. In many Linux implementation, including our case, every user process shares the same virtual address space with the kernel. In other words, every user process can see the kernel in higher address, and the kernel can see the current user process in lower address. The kernel surely has enough execution privlege to access all user processes directly (you may verify it by replacing the copy_to_user() in your kernel module with direct access). Why do we still use copy_to_user() and copy_from_user() to transfer data between the kernel and user processes?
  • Lab8 (No report)
    1. What is the original unit of the parameter period used by OSTmrCreate()? This is also the resolution of the OS Timer. Where in the code is it determined?
    2. Why do we need a timer of our system to be configurable?
    3. How can you make resolution of the OS Timer as high as possible, while the application still works properly?

Specification

Reports will be posted in few days after each deadline.

Turn in a report by lab leader (no more than 2 pages) in the second day of the lab including:

  • The problems you encountered and how you fixed them in the lab.
  • Your comments or any other questions from the lab.
  • The answer of the corresponding lab question above.
  • Everyone needs to be a lab leader at least once.

FTP Information
Host: 140.112.90.174, Port: 21, Username: csl2016, Password: csl2016HomeWork
Please use pdf format with specific filename: “G#.lab#.ver#.pdf”, where G# is your group id and ver# is version number for lab#.
E.g., G1.2.3.pdf means report of group 1 lab 2 version 3.

Scores

* Raw scores


Grading (subject to change):

Scoring           I     II
● Proposal       0%     5% by groups of 1-2 teams.
● Presentation   0%     5% by groups.
● LAB   (7x3+5x10)% (7x3)% by teams and weighted by team leader on completeness (LAB1-7) 
                           and by groups on earlier finish time(LAB 8-12), 
                           2 students as a team share one set of equipment.  
● LAB Report (7x2)% (7x2)% by teams and weighted by team leader biweekly.
● Project        0%    20% by groups.
● Project Report 0%    20% by groups.
● Participation 15%    15% by students, including the attendance and lab discussion.
II is by approval of groups with big enough projects, those who choose this only need to finish the first 7 labs.

Term Project

One in the following topics by groups.
* Embedded Systems
  * uCOSII/III on RPie (porting)
  * quadcopter (flight control)
  * myRobot (house cleaning, ladder climber, segway, ...)
  * PID car control (speed racing)
  * 6-axis Robot Arm (hand mimics)
  * ...
* Sensor Network
* Virtualization
* eSystem
* WeOS
* ...

Documents

References

TA

    • office hour: location: R408
    • e-mail: r05944038@ntu.edu.tw
    • office hour: location: R408
    • e-mail: r05922020@ntu.edu.tw
courses/105_1/csl.txt · 上一次變更: 2017/03/14 22:52 由 ycchen
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0