cs2106 lec1 intro
TRANSCRIPT
![Page 1: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/1.jpg)
Lecture 1
Introduction10 August, 2010
1
![Page 3: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/3.jpg)
Office HourThu 4 - 6pmAS6 05-14
(was Fri 2-4pm)3
![Page 4: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/4.jpg)
Required Textbook
$47.90
4
![Page 5: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/5.jpg)
Additional Reference Only
$47.00
5
![Page 6: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/6.jpg)
Average Weekly Workload(your milage may vary)
Preparation6 hr
Lab1 hr
Tutorial1 hr
Lecture2 hr
Note that NUS officially lists the workload as 2-1-1-0-4 which is a typo (it does not add up to 10!)
6
![Page 7: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/7.jpg)
Assessment
Midterm20%
Lab25%
Participation5%
Exam50%
7
![Page 8: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/8.jpg)
October 2010Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 910 11 12 13 14 15 1617 18 19 20 21 22 2324 25 26 27 28 29 3031
Important Dates
November 2010Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 1314 15 16 17 18 19 2021 22 23 24 25 26 2728 29 30
midterm final
8
![Page 9: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/9.jpg)
midterm and final are semi-open book(one 2-sided A4 sheet)
9
![Page 10: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/10.jpg)
Lecture Format
1200-1400
0 20 40 60 80 100 120
1030535535
Lecture Break Lecture Break Lecture Dismiss
10
![Page 11: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/11.jpg)
slides will be posted1-2 days before lecture
but
11
![Page 12: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/12.jpg)
students are expected to take
notes during lecture
12
![Page 13: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/13.jpg)
students are expected to read the assigned readings
13
![Page 14: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/14.jpg)
no “model” answer will be posted
14
![Page 15: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/15.jpg)
Philosophy: light fire
not fill bucket - William Yeats
Flickr photo by danielygo Some rights reserved
Light a Fire
15
![Page 16: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/16.jpg)
Philosophy: light fire
not fill bucket - William Yeats
Flickr photo by danielygo Some rights reservedFlickr photo by peasap Some rights reservedNot Fill a Bucket
16
![Page 17: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/17.jpg)
blog.nus.edu.sg/cs2106
17
![Page 18: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/18.jpg)
your responsibility: check for update frequently
(hint: subscribe via email or RSS)
18
![Page 19: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/19.jpg)
do participate in online discussion
(and use your real name!)
19
![Page 20: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/20.jpg)
screencast will be posted
20
![Page 21: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/21.jpg)
what is
CS2106about?
21
![Page 22: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/22.jpg)
NOT about how to use Mac OS X, MS Windows,
Linux etc.
22
![Page 23: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/23.jpg)
about basic concepts and design principles
in OS
23
![Page 24: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/24.jpg)
why should I learn
OS ?
24
![Page 25: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/25.jpg)
I am not gonna write another OS!25
![Page 26: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/26.jpg)
complex software
26
![Page 27: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/27.jpg)
abstraction + interface design
27
![Page 28: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/28.jpg)
concurrency
28
![Page 29: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/29.jpg)
resource management
29
![Page 30: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/30.jpg)
performance trade-off
30
![Page 31: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/31.jpg)
what to learn from OS course (beside OS):
1. complex systems2. abstraction + interface design3. concurrency4. resource management5. performance trade-off
31
![Page 32: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/32.jpg)
after CS2106
32
![Page 33: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/33.jpg)
CS3221 OS Design and Pragmatics
33
![Page 34: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/34.jpg)
CS3211 Parallel and Concurrent
Programming
34
![Page 35: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/35.jpg)
CS4223 Parallel Computer Architecture
35
![Page 36: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/36.jpg)
CS4275 Programming Real-Time
Systems
36
![Page 37: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/37.jpg)
CS4344 Networked and Mobile
Gaming
37
![Page 38: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/38.jpg)
CS5222 Processor Architecture
38
![Page 39: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/39.jpg)
CS5223Distributed Systems
39
![Page 40: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/40.jpg)
CS5231Systems Security
40
![Page 41: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/41.jpg)
CS5248Systems Support for Continuous Media
41
![Page 42: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/42.jpg)
CS6270Virtual Machines
42
![Page 43: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/43.jpg)
OSOperating Systems
43
![Page 44: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/44.jpg)
operating system
compilers editors shell...
browser calendar media player...
machine language
microarchitecture
physical devices
44
![Page 45: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/45.jpg)
The OS is a layer of software that manages processors, storage and I/O devices and provide simple interfaces to the hardware to user programs.
45
![Page 46: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/46.jpg)
OS is everywhere
46
![Page 47: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/47.jpg)
phone, car, robot, router, media player, game console, ..
47
![Page 48: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/48.jpg)
48
![Page 49: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/49.jpg)
49
![Page 50: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/50.jpg)
1. read a number from a file2. print the number to screen
consider the simple program:
how to code in a world without OS?
50
![Page 51: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/51.jpg)
is the file on a CD, thumbdrive, harddisk..?
location of file on storage?
is another program writing to the file at the same time?
etc..51
![Page 52: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/52.jpg)
what graphics chip is the system using?
what is the display resolution?
is another process writing to the same location?
etc..
52
![Page 53: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/53.jpg)
OS as an extended
machine
53
![Page 54: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/54.jpg)
operating system
compilers editors shell...
browser calendar media player...
file display keyboard mouse printer battery socket
54
![Page 55: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/55.jpg)
operating system (a.k.a kernel)
compilers editors shell..
browser calendar media player..
file display keyboard mouse printer battery socket
user mode
kernel mode
55
![Page 56: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/56.jpg)
interfaces provided by OS are known as system calls
56
![Page 57: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/57.jpg)
Language libraries typically provide a 1-to-1 mapping between library calls and system calls.
e.g.: the function exit( ) calls system call _exit( ).
57
![Page 58: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/58.jpg)
Recall how a library procedure call works..
58
![Page 59: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/59.jpg)
CPU
programcounter
Memory
data
code
stackpointer
programstatus word
stackframepointer
59
![Page 60: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/60.jpg)
CPU
Memory
data
code
stack
function parameterslocal variables
saved frame pointerreturn address
programcounter
stackpointer
programstatus word
framepointer
CPU
60
![Page 61: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/61.jpg)
a system call is similar, except:
1.a special instruction sets the kernel mode bit in PSW before executing the system call
61
![Page 62: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/62.jpg)
2.a special instruction sets the user mode bit in PSW after executing the system call
62
![Page 63: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/63.jpg)
3. CPU executes the OS system call handler.
63
![Page 64: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/64.jpg)
In user mode, certain privileged instructions cannot be executed, certain addresses cannot be accessed etc.
In kernel mode, there is no restriction.
64
![Page 65: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/65.jpg)
Bad things happen in older OSes without dual mode operation.
65
![Page 66: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/66.jpg)
Bad things still happen if buggy code runs in kernel mode.
66
![Page 67: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/67.jpg)
operating system (a.k.a kernel)
compilers editors shell..
browser calendar media player..
file display keyboard mouse printer battery socket
user mode
kernel mode
67
![Page 68: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/68.jpg)
OS as a resource manager
68
![Page 69: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/69.jpg)
operating system
disk space RAM processor cycles
network bandwidth
screen estate
batterypower ....
69
![Page 70: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/70.jpg)
what if the computer runs one task at a time, always completing it before running another task ?
70
![Page 71: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/71.jpg)
a task always have full use of all resources.
not efficient since not all resources are fully utilized at all time (e.g., CPU is idle when I/O is performed).
71
![Page 72: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/72.jpg)
Suppose the computer keeps multiple tasks in the memory. When the running task is idle, switch to another task (multi-programming)
72
![Page 73: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/73.jpg)
now, resources are shared among the tasks.
how does CPU switch from one task to another?
how to prevent one task from corrupting the memory of another task?
73
![Page 74: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/74.jpg)
what if there are multiple users using the system, and there is one CPU intensive task?
74
![Page 75: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/75.jpg)
The computer keeps multiple tasks in the memory and switch between them frequently (regardless of whether the task is idle) (time-sharing)
75
![Page 76: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/76.jpg)
time-multiplexing: CPU, printer
space-multiplexing: memory, disk, screen
76
![Page 77: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/77.jpg)
OS is an extended machine
anda resource manager
77
![Page 78: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/78.jpg)
UNIX and C
78
![Page 79: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/79.jpg)
why UNIX?(Linux, Mac OS X, Sun OS etc.)
79
![Page 80: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/80.jpg)
many OS concepts are cleanly manifested in UNIX
80
![Page 81: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/81.jpg)
source code are available
81
![Page 82: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/82.jpg)
why C?
82
![Page 83: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/83.jpg)
UNIX is written (mostly) in C
83
![Page 84: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/84.jpg)
intermediate-level language (e.g., explicit memory allocation,
bits manipulation)
84
![Page 85: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/85.jpg)
A brief introduction to C and programming in
UNIX
85
![Page 86: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/86.jpg)
C vs Java
(highlights)
86
![Page 87: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/87.jpg)
Java: set of classes
C: set of functions + structures
87
![Page 88: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/88.jpg)
C: no byte datatypeno boolean datatypeno String class
(use char, int, and array of char respectively)
88
![Page 89: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/89.jpg)
Java: all variables are reference except boolean and numeric types
C: all variables are primitive types (holds the value of that exact type)
89
![Page 90: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/90.jpg)
C: no “new” operator
must explicit declare as pointer for reference variables
must explicitly malloc() and free() memory
90
![Page 91: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/91.jpg)
Java: all variables are reference except boolean and numeric types
C: all variables are primitive types (holds the value of that exact type)
91
![Page 92: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/92.jpg)
Java: external classes must be imported
C: external functions and types must be declared
(made easy with #include statement)
92
![Page 93: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/93.jpg)
int main(){ return 0;}
93
![Page 94: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/94.jpg)
#include <stdio.h>
int main(){ printf(“Hello World!\n”); return 0; }
94
![Page 95: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/95.jpg)
gcc hello.c
gcc -o hello hello.c
gcc -g -o hello hello.c
gcc -Wall -g -o hello hello.c
to compile:
95
![Page 96: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/96.jpg)
#include <stdio.h>#include <stdlib.h>
void say_hello(int times){ int i; for (i = 0; i < times; i++) printf(“Hello World\n”);}
int main(int argc, char *argv[]){ say_hello(atoi(argv[1])); return 0; }
96
![Page 97: CS2106 Lec1 Intro](https://reader033.vdocument.in/reader033/viewer/2022042509/5526333f4a7959c3238b45cb/html5/thumbnails/97.jpg)
*97