• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Бакалаврская программа «Программа двух дипломов НИУ ВШЭ и Лондонского университета "Прикладной анализ данных"»

Computer Architecture and Operating Systems

2019/2020
Учебный год
ENG
Обучение ведется на английском языке
8
Кредиты
Статус:
Курс обязательный
Когда читается:
2-й курс, 2-4 модуль

Преподаватель

Course Syllabus

Abstract

The training course “Computer Architecture and Operating Systems” is offered to students of Bachelor Program “HSE and University of London Double Degree Programme in Data Science and Business Analytics” (area code 01.03.02) at the Faculty of Computer Science of the National Research University — Higher School of Economics (HSE). The course is classified as a compulsory subject; it is a three-module course (semesters A and B quartiles 2 to 4). The course is divided into three logical parts. The part is given during semester A quartile 2 and is dedicated to computer architecture and assembly programming. The second part is given during semester B quartile 3 and covers foundations of operating system programming. The third part is given during semester B quartile 4 and is focused at operating system organisation. The syllabus is prepared for teachers responsible for the course (closely related disciplines), teaching assistants, students enrolled in the course as well as experts and statutory bodies carrying out assigned or regular accreditations.
Learning Objectives

Learning Objectives

  • Study foundations of computer architecture (on the example of MIPS).
  • Acquire assembly language programming skills.
  • Study operating system organisation (on the example of Linux).
  • Learn how to create system software.
Expected Learning Outcomes

Expected Learning Outcomes

  • Translate high-level programming language code into assembly instructions and vice versa.
  • Understand assembly language and be able to write assembly programs.
  • Understand fundamentals of computer architecture.
  • Understand how pipelining works.
  • Understand the concepts of memory hierarchy, cache memory, and virtual memory.
  • Understand fundamentals of operating system organisation.
  • Be able to create operating-system level software in the C programming language.
  • Understand fundamental operating systems structures such as processes, system calls, scheduling, virtual memory, and file systems.
Course Contents

Course Contents

  • Computer architecture concept.
  • ISA and assembly language.
  • Assembler, assembly language. RISC and MIPS.
  • Registers and memory model.
  • Calling conventions, stack and subroutines.
  • Arithmetical coprocessor.
  • More on assembly language: macros and includes; stack frame.
  • Exceptions.
  • Input/Output: polling and MMIO.
  • Interrupts.
  • Pipeline.
  • Cache and jump predictions.
  • Challenges of OS: unification, separation, logging. Kernel and userspace. Interoperability and cross-platformness.
  • The C programming language as high-level system programming tool. Libc. Building and running a C program.
  • Shell.
  • Processes.
  • Filesystem.
  • Devices and other special files.
  • Permissions.
  • Inter-process communication.
  • Libraries and binary file format.
  • Shared objects.
  • Programming tools.
  • Operating system goals: unification, separation, logging. OS interfaces: program-oriented, command-oriented, UI. OS architecture: monolith/modular/mixed.
  • Classical flower-like architecture: kernel, kernel modules; services, utilities, applications. Competency separation.
  • Command-oriented interface: utilities and shell. Command input/output/control flows. Assumption of human-readable/writable nature of command data flows. Commandline interface: principle and examples. POSIX shell command-line interface: basic syntax and command-line conventions.
  • Utilities as command-line syscall wrappers (files, processes etc.).
  • Shell syntax, I/O redirection.
  • Text processing utilities, regular expressions.
  • Pre-system boot stages.
  • POSIX-like system initialization, daemons.
  • SystemD model of interactive service control.
  • Application libraries, message bus.
  • GUI orchestrating, widgetsets.
  • Free/Open source. Distribution lifecycle: packages, repository, package manager.
Assessment Elements

Assessment Elements

  • non-blocking Exam
  • non-blocking Homeworks
  • non-blocking In-class activities.
    Each time a student broadcasts a solution of a task during class hours, they get a bonus point.
  • non-blocking Class presence.
  • non-blocking Offline tests.
  • non-blocking Final online test.
Interim Assessment

Interim Assessment

  • Interim assessment (4 module)
    <h4>Overall formula</h4>There are 3 modules, each scored $$M$$<sub>i</sub> in the same way, and final exam $$E$$.<p></p>$$G = 10 \cdot min (1, \frac{\sum_{i=1}^3 M_i + E}{4})$$<h4>Details</h4>Each module score $$M_i$$ calculates from Regular $$R_i$$ and Bonus $$B_i$$ points:<p></p>$$M_i = min (1, R_i + \frac{2}{10}\cdot B_i)$$<h4>Regular points (100%)</h4><table border="2"><tr><td>Variable</td><td>Score</td><td>Description</td></tr><tr><td>$$H$$</td><td>45%</td><td>EJudge / other practical homework. You must solve tasks in time, 50% penalty for a week outdated task, 75% penalty otherwise, no score for unsolved one. Also no score for copy-paste / rewrite or other cheating (either source or destination), this can be enquired.</td></tr><tr><td>$$T$$</td><td>10%</td><td>Offline tests. Main use is self-checking, but here is 10%.</td></tr><tr><td>$$P$$</td><td>10%</td><td>Class presence. You need to attend more than 3/4 of total classes to earn this point.</td></tr><tr><td>$$F$$</td><td>35%</td><td>Final online test. You can skip this on with 60% penalty; 100% penalty for cheating (both sides; can be enquired).</td></tr> </table>$$R_i = \frac{45}{100} \cdot H + \frac{10}{100} \cdot T + \frac{10}{100} \cdot P + \frac{35}{100} \cdot F$$<h4>Bonus points (+20% max)</h4>Any 200%-task can be shared (in fact, sharing is suggested), in that case it'll be divided by the number of administrants (thus 200% score).<table border="2"><tr><td>Variable</td><td>Score</td><td>Description</td></tr><tr><td>$$L$$</td><td>200%</td><td>Lecture conspectus. Can be in Russian. Must cover all lectures to be scored. Each conspectus shall include a paragraph on each topic mentioned in lecture syllabus, and must be approved by lecturer and published here.</td></tr><tr><td>$$S$$</td><td>200%</td><td>Video subtitles (in English). Must cover all lectures to be scored, be verified by lecturer and published on YouTube.</td></tr><tr><td>$$C_k$$</td><td>10% each</td><td>ingle class conspectus. Can be in Russian. Shall include all themes from the class, practice statements and it's solutions and must be approved by lecturer. No copy-paste is allowed, and no scoring if more than a week late.</td></tr><tr><td>$$A_i$$</td><td>5% each</td><td>Class activity. Each time you broadcast a solution of a task during class hours, you get this point.</td></tr></table>$$L_{yours} = \frac{2}{team\: size} $$ if $$L$$ is complete and checked.<p></p>$$S_{yours} = \frac{2}{team\: size} $$ if $$S$$ is complete and checked.<p></p>$$B_i = min(1, max(L_{yours}, S_{yours}, \frac{1}{10} \cdot \sum_{k} C_k + \frac{2}{10} \cdot \sum_{k} A_k ))$$
Bibliography

Bibliography

Recommended Core Bibliography

  • Harris, D. M., & Harris, S. L. (2012). Digital Design and Computer Architecture (Vol. 2nd ed). Amsterdam: Elsevier Ltd. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=472255
  • Архитектура компьютера, Таненбаум Э., Остин Т., 2014
  • Компьютерные системы. Архитектура и программирование : взгляд программиста, Брайант Р. Э., О'Халларон Д. Р., 2005
  • Современные операционные системы, Таненбаум Э., 2012

Recommended Additional Bibliography

  • Hennessy, J. L., Asanović, K., & Patterson, D. A. (2012). Computer Architecture : A Quantitative Approach (Vol. 5th ed). Waltham, MA: Morgan Kaufmann. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=407995
  • Sweetman, D. (2007). See MIPS Run (Vol. 2nd ed). San Francisco, Calif: Morgan Kaufmann. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=195985
  • Операционная система UNIX : учеб. пособие для вузов, Робачевский А. М., 2003