Operating System Labs. Yuanbin Wu

Similar documents
Operating System Labs. Yuanbin Wu

CSCI 2132 Software Development. Lecture 2: Introduction to UNIX and Unix-like Operating Systems

UNIX Kernel. UNIX History

Introduction to Linux

Unix API Books. Linux Kernel Books. Assignments and Exams. Grading for CSC 256. Operating Systems 8/31/2018. CSC 256/456 Fall

Introduction to Linux

Inter-Process Communication

COURSE OUTLINE. UNIX Programming 2014 Fall by Euiseong Seo

Topic 8: I/O. Reading: Chapter 7 in Kernighan & Ritchie more details in Appendix B (optional) even more details in GNU C Library manual (optional)

Introduction to Linux

UNIX. The Very 10 Short Howto for beginners. Soon-Hyung Yook. March 27, Soon-Hyung Yook UNIX March 27, / 29

Linux for Beginners. Windows users should download putty or bitvise:

Introduction to Linux. Woo-Yeong Jeong Computer Systems Laboratory Sungkyunkwan University

Saint Louis University. Intro to Linux and C. CSCI 2400/ ECE 3217: Computer Architecture. Instructors: David Ferry

Lecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter

Layers in a UNIX System. Create a new process. Processes in UNIX. fildescriptors streams pipe(2) labinstructions

Perl and R Scripting for Biologists

Brief Linux Presentation. July 10th, 2006 Elan Borenstein

Practical Computing-II. Programming in the Linux Environment. 0. An Introduction. B.W.Gore. March 20, 2015

CS 326: Operating Systems. Lecture 1

Operating Systems II Systems Programming in C

Unix to Linux. CS 3113 Fall 2018 Dr. Christan Grant

System Programming. Introduction to Unix

Continue: How do I learn C? C Primer Continued (Makefiles, debugging, and more ) Last Time: A Simple(st) C Program 1-hello-world.c!

Introduction to Linux

CSci 4061 Introduction to Operating Systems. Programs in C/Unix

Welcome to Linux. Lecture 1.1

INTRODUCTION TO OPERATING SYSTEMS. Jo, Heeseung

EL2310 Scientific Programming

Introduction to Computer Systems

Introduction to Linux Overview and Some History

Overview of Unix / Linux operating systems

Introduction to Computer Systems

Operating System Labs. Yuanbin Wu

EL2310 Scientific Programming

CS Prof J.P.Morrison

系統程式設計 Systems Programming

SWE3004: Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Unix Processes. What is a Process?

Chris Riesbeck, Fall Introduction to Computer Systems

Projects and Environment Introduction

628 Lecture Notes Week 4

CS246 Spring14 Programming Paradigm Notes on Linux

Assignment 1. CSI Programming Practice, Fall 2011

4. The Abstraction: The Process

ECE 598 Advanced Operating Systems Lecture 23

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview

Operating System Labs. Yuanbin Wu

CSC 256/456: Operating Systems. Introduction. John Criswell! University of Rochester

Introduction to Operating Systems. Jo, Heeseung

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview

Lecture 3. Unix. Question? b. The world s best restaurant. c. Being in the top three happiest countries in the world.

Operating Systems. Minati De. Lecture 1: Introduction. Department of Mathematics, Indian Institute of Technology Delhi, India.

Operating Systems, Spring 2015 Course Syllabus

Accessing Files in C. Professor Hugh C. Lauer CS-2303, System Programming Concepts

Laboratory 1 Semester 1 11/12

CSC209: Software Tools and Systems Programming. Richard Krueger Office hours: BA 3234

Introduction to Computer Systems

CSE 390a Lecture 1. introduction to Linux/Unix environment

The Operating System Machine Level

EECS 470 Lab 5. Linux Shell Scripting. Friday, 1 st February, 2018

COURSE INTRODUCTION. Software Tools EECS2031 Winter 2018 Manos Papagelis. Thanks to Karen Reid and Alan J Rosenthal for material in these slides

Introduction to Cygwin Operating Environment

CS 241 Data Organization. August 21, 2018

Introduction to Operating Systems

Problem Set 1: Unix Commands 1

CSC209H Lecture 7. Dan Zingaro. February 25, 2015

Creating a Shell or Command Interperter Program CSCI411 Lab

Project 2: Shell with History1

The Operating System Machine Level

CptS 360 (System Programming) Unit 2: Introduction to UNIX and Linux

by Pearson Education, Inc. All Rights Reserved.

Linux at the Command Line Don Johnson of BU IS&T

Spring Modern Computer Science in a Unix Like Environment CIS c

Your Instructor. CSE Content. Notes. Notes. Notes. Summer May 4, 2010

CS 550 Operating Systems Spring Operating Systems Overview

CMPS 105 Systems Programming. Prof. Darrell Long E2.371

Topics. Prerequisites

Introduction to Computer Systems

CS370 Operating Systems

*nix Crash Course. Presented by: Virginia Tech Linux / Unix Users Group VTLUUG

CS510 Operating System Foundations. Jonathan Walpole

CSC209 Review. Yeah! We made it!

CS 240 Fall 2015 Section 004. Alvin Chao, Professor

CSE 333 SECTION 3. POSIX I/O Functions

Computer Science 330 Operating Systems Siena College Spring Lab 5: Unix Systems Programming Due: 4:00 PM, Wednesday, February 29, 2012

Introduction in Unix. Linus Torvalds Ken Thompson & Dennis Ritchie

CS2028 -UNIX INTERNALS

Outline. OS Interface to Devices. System Input/Output. CSCI 4061 Introduction to Operating Systems. System I/O and Files. Instructor: Abhishek Chandra

Systems Programming. The Unix/Linux Operating System

Introduction to Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Processes. Johan Montelius KTH

Operating Systems. Fall Dongkun Shin, SKKU

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files. Compiler vs.

A process. the stack

Killing Zombies, Working, Sleeping, and Spawning Children

(MCQZ-CS604 Operating Systems)

Spring 2017 :: CSE 506. Introduction. Nima Honarmand

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017

Transcription:

Operating System Labs Yuanbin Wu cs@ecnu

Operating System Labs Introduction to Unix (*nix) Course Overview

Operating System Labs Introduction to Unix (*nix) Course Overview

Unix / *nix What An familiy of operating systems Maybe the best operating system A cool thing

Smartphone Unix / *nix

Web Server Unix / *nix

Unix / *nix

Unix / *nix As your daily OS (work with it) Coding Web Text processing (slides, documents) Multimedia The Shell

Unix / *nix The Shell Your main working space

Unix / *nix

Unix / *nix As an example for studying OS Open source High quality documents are freely available Great community

Unix / *nix History Multics: mid-1960, MIT+GE+Bell Labs Segmentation, Dynamic linking Complexity Unics: 1969, Ken Thompson Using PDP-7 assemble language C programming language, 1972, Dennis Ritchie Rewrite unix for PDP-11

Unix / *nix

Unix History GNU Project, 1983, Richard Stallman Free software Linux, 1991, Linus Torvalds A (free) kernel with support of GNU packages Many distribution Ubuntu, Debian, SentOS, Federa, Gentoo, ArchLinux Android FreeBSD, OS X,...

Unix Operating System Applications Shell Hardware Kernel Library (Glibc)

Unix Operating System Login Usrer name Password File and Directory Hierarchical structure /home/ybwu/documents/myfile Root directory: /

Unix Operating System Input and Output File descriptor unsigned int Allocate when open a file Revoke when close a file read() / write() int fd = open( foo, r ); read(fd, buffer, size); close(fd);

Unix Operating System Input and Output Standard input, output, error 3 file descriptors Automatic allocated for every process read(stdin_fileno, buffer, size); write(stdout_fileno, buffer, size); write(stderr_fileno, buffer, size);

Unix Operating System Everything is a file Documents Directories Hard-drives Keyboards Printers /proc The same API: open, read, write, close

Unix Operating System Process Process ID (PID) Process status: ready, run, sleep descheduled Running scheduled Ready IO Interrupt IO Finish Sleep

Unix Operating System Thread Processes that share same address spaces, file descriptors,... Kernel thread / User thread

Unix Operating System Handle Errors Not only report error, also provide detail info. Variable: errno Function: void perror(char* msg); Print msg Print error message string corresponding to the current errno

Unix Operating System Signal Tell a process that something has happened Example pressing Ctrl+C generate a signal to terminate current process

Unix Operating System System Call and Library Function System Call: Provided by kernel Doing restricted operations with hardwares User mode, kernel mode Library Function Provided by user mode software developer Some functions reused many times

Unix Operating System #include <stdio.h> void foo() { printf( bar\n ); } User application printf() fprintf() malloc() atoi() Library Functions (Glibc) write(), reads(), mmap() System Calls Kernel

Unix Operating System Summary Basic terms File descriptor, stdin, stdout, stderr Pid errno, perror(), Signal: Ctrl + C System Call Library Functions

Operating System Labs Introduction to *nix Course Overview

Course Overview Objectives To get some practical knowledge on OS To discover the fun of programming To feel the beauty of computer science How Reading Coding Presentation

Course Overview In this semester: 6 projects 3 of them need oral presentations Course website: http://ybwu.org/ecnu-oslabs/15-fall/index.html

Course Overview Project 0 To get familiar with Linux Shell command cd, ls, mkdir, rm,... Dev environment gcc, gdb

Course Overview Project 1 Sorting Warm up with linux programming I/O system call

Course Overview Project 2 Implement your own shell Linux process API Redirect Pipe

Course Overview Project 3 Implement your own malloc() / free() Dynamic memory allocation The pointer of C

Course Overview Project 4 Implement your own lock Introduction to concurrency Linux pthread API Thread safe data structures

Course Overview Project 5 Implement a file defragmentor Reorganize file blocks Familiar with basic concepts of file system

Course Overview Projects P0, P1, P2 should be completed individually P3, P4, P5 should be completed in groups of three. Grading The quality of your projects Presentation General advice Start early Build your projects incrementally

Course Overview How Reading Coding Presentation

Course Overview Reading The main book: Operating Systems: Three Easy Pieces, by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau http://pages.cs.wisc.edu/~remzi/ostep/

Course Overview Reading Reference for Unix programming: Advanced Programming in the UNIX Environment, by W. Richard Stevens, Stephen A. Rago Reference for C programming: The C Programming Language, by Brian W Kernighan, Dennis M. Ritchie Reference for Linux kernel: Linux Kernel Development, by Robert Love

Course Overview Reading RTFM Read The Manual

Course Overview Coding Coding without IDE Using C, no C++, no Java... Compile with gcc Debug with gdb Make your code Well structured Clean Easy to read

Course Overview

Course Overview Presentation Everyone need to make presentation at least once (for one project) About What've you done? How did you accomplish them? Which are your favorate parts in your implementation? What did you learn from the project?

Operating System Labs 9.7 14 21 28 10.5 12 19 26 11.2 9 16 23 30 12.7 14 21 28 P0 w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 w15 w16 w17 L P1 L P2 L L P3 oral P4 oral P5 oral P3 L P4 L L P5 L

Course Overview Policies Plagarisim policy Late policy

Course Overview Plagiarism policy What is OK Discuss programming specifications What is the meaning of redirection Discuss reading materials What are the differences between exec functions? Discuss implementation strategies How to make the lock faster?

Course Overview Plagiarism policy What is NOT OK Copy codes/docs from someone Beg someone to write a copy for you

Course Overview If we discover any improper code sharing ALL participants will loss ALL credits of the project No Cheating!

Course Overview Late policy For P0, P1, P2 Late handins are NOT accepted. For P3, P4, P5 Your group will have 3 late days. You need to email TA at least 1 hour before the dateline. If all your 3 late days are used, late handins will not be accepted. Start Early!

Course Overview Contact Instructor: Yuanbin Wu, ybwu@cs.ecnu.edu.cn 610 Information Building TA: Chengchao Huang, ecnucchuang@126.com Changzhi Sun, 51141201057@ecnu.cn Office hour Wed 16:30 17:30 @ 4-211 Advanced Machine Learning (Wed. 15:00 16:30, 4-211)