OS, Kernel

Kern Koh Kernel of Linux Introduction 정리

msh1307 2022. 7. 18. 12:22

What is an Operating System?

  • 유저랑 컴퓨터 하드웨어 사이에서 중개자? 역할을 해주는 프로그램이다.

  • Operating System의 목표:

- user program 실행

- 문제를 쉽게 해결하기 위해서

-  컴퓨터 시스템을 잘 사용하기 위해서

-  하드웨어를 효율적으로 사용하기 위해서

 

  • Performance

- Throughput : 처리량                                             ---  jobs / sec

- Utilization : CPU를 바쁘게 유지하는 것                      ---  % of time busy 

- Response time : 첫번째 Response 나오는데 걸린 시간  ---  sec / job

 

  • Kernel

- Memory 상주

- 대부분은 C로 작성됨

- 나머지는 HW dependent, speed 등의 이유로 어셈블리 사용함

- system call 이라고 불리는 특별한 함수를 가지고 있음

- process management, file system, I/O system 세가지 파트로 나뉠 수 있음

 

Terminology 

  • kernel

- OS의 memory 상주하는 파트

 

  • utility

- kernel과 반대되는 개념

- command라고도 함, OS의 disk resident part (loaded on demand)

- disk에 들어있는 프로그램?

 

  • shell

- special utility인데 Job control 담당

- 키보드 인풋을 읽고 command 실행 (interpreter)

 

  • file

- sequence of bytes 

- I/O devices도 special file로 취급

- ls /dev 해보면 devices들과 1 대 1 매칭되는 파일 확인 가능

- 리눅스에서는 모든 것을 파일로 다룸

 

  • standard file

- standard output : screen

- standard error : error message

- standard input : keyboard

 

How Kernel-Shell-Utilities are Related

1) boot 뒤 Kernel이 Main Memory에 올라옴

2) User A가 terminal을 키면 Kernel은 이 terminal을 위해 shell 띄워줌

3) User B가 terminal키면 똑같이 sh를 만들어줌

3) User B가 terminal에서 ppt를 실행시키면 sh의 child process로서 ppt는 동작함

여기서 ppt는 예시