Transcript Windows

제17강 : 운영체제의 실제
운영체제의 실제
UNIX, Linux
UNIX, Linux
• 여러 터미널을 지원하는 다중 사용자(Multiuser)
– 따라서 자원을 아껴 쓰도록 설계되어 있으며
– Protection을 중요시 여기는 시스템이다
• 한 터미널에서 다중 태스킹(multitasking)
• C 언어로 작성 - 이식성(portability) 높은 OS
• 커널(kernel)과 유틸리티 (utility)로 구성
– 커널:
메모리에 항상, 자원관리
– 유틸리티:
사용자 도우미
디스크에 있다가 필요할 때마다 메모리로
광의/협의 OS 정의
응용프로그램
Utility Programs
Shell
응용프로그램
컴파일러
loader
사용자 문제 해결
프로그램 개발/실행
도우미
광의 OS
협의 OS
Kernel
자원의 관리
하드웨어
CPU
Memory
OS = { 여러 프로그램들 }
= {커널, shell, loader, cc, …}
Shell
사용자 인터페이스 프로그램
•
•
•
•
사용자 명령을 받아 해석하고,
Child 프로그램을 생성
사용자와 시스템 간의 인터페이스
가장 중요한 유틸리티이다.
UNKIX/Linux Utility (Command)
① 파일 조작 명령
rm :
파일을 삭제한다.
mv :
파일 이동시킨다. (즉 이름을 변경한다.)
cp :
파일을 복사한다.
cat :
여러 파일을 결합 (내용을 화면에).
chmod : protection mode를 지정
② 디렉토리 조작 명령
cd :
작업 디렉토리를 바꾼다.
ls :
디렉토리의 내용을 보여준다.
mkdir :
새로운 디렉토리를 생성한다.
rmdir :
디렉토리를 제거한다.
③ 볼륨/장치 조작 명령
mount : 새로운 파일 시스템을 접목시킨다.
fsck :
파일 시스템의 오류여부를 검사.
UNKIX/Linux Utility (Command)
① 파일 조작 명령
rm :
파일을 삭제한다.
mv :
파일 이동시킨다. (즉 이름을 변경한다.)
cp :
파일을 복사한다.
cat :
여러 파일을 결합 (내용을 화면에).
chmod : protection mode를 지정
② 디렉토리 조작 명령
cd :
작업 디렉토리를 바꾼다.
ls :
디렉토리의 내용을 보여준다.
mkdir :
새로운 디렉토리를 생성한다.
rmdir :
디렉토리를 제거한다.
③ 볼륨/장치 조작 명령
mount : 새로운 파일 시스템을 접목시킨다.
fsck :
파일 시스템의 오류여부를 검사.
UNIX File
① “inode” - 파일의 meta-data
② 사용자를 (me, group, all)로 구분
각 file의 protection mode:
rwx rwx rwx
③ 세 종류의 파일
(A) 일반파일
정의: “sequence of bytes".
내부구조가 필요하다면 다른 계층에서 제공해주어야.
(B) 디렉토리
내용 -- (파일 이름, pointer)로 구성된다.
pointer는 디스크 내 inode의 주소.
(C) 특수(special) 파일
모든 하드웨어 장치를 파일로 취급
standard input file, standard output file
UNIX File System
① 부트 블록 : booting할 때 사용하는 코드
② 슈퍼 블록 : 파일 시스템 전체에 대한 정보
free space에 대한 정보
③ inode 블록 : metadata, 즉 inode 장소
④ 데이터 블록 : 파일의 내용들을 보관하는 장소.
Bootblock
Superblock
Inode list
Data block
UNIX 파일 시스템
sizes
Superblock
Head pointers
M, N,
free
inodes
(1) Sector
inodes
free
data
blocks
(M) Sectors
(N) Sectors
Data blocks
UNIX Process
• fork(), exec() system call (앞 부분 참조)
• CPU scheduling (Round-robin 참조)
• 메모리 관리 (Paging, swapping 참조)
PIPE의 개념
1.
원래 스크린용
출력을
PA
2. 버퍼로 보냄
3. 버퍼로부터
버퍼 (PIPE)
printf()
4. Keybaord
입력처럼 전달
PB
scanf()
① 파이프 라인 (Pipeline)
UNIX 운영체제가 두 프로세스 사이에 할당해주는 임시 파일이다.
앞 프로세스의 표준출력이(원래는 screen output)이 버퍼로 들어간다
버퍼 내용이 뒤 프로세스의 표준입력(keyboard input)으로 공급된다
파이프 라인은 여러 개의 프로세스로 확장될 수 있다 ( PA | PB | PC …)
② 필터
두개의 파이프 사이에 위치한 프로세스이다.
단일 입력, 단일 출력을 처리하는 프로그램이다.
UNIX/Linux
• Multi-User
• Protection - Yes
• Resource – 最大 節約
– Text mode (CUI)*
• Portable
• Many CPU’s
* CUI:
Character User Interface
DOS/Windows
• Single-User
• Protection - Little
• Resource – 最大 使用
– Window, GUI*
• Not Portable
• Only Intel PC
* GUI:
Graphical User Interface
User Interface (OS)
CUI - Linux
GUI - Windows
$_
menu
active processes
(Programs in disk) (loaded into memory)
man
Command
ps
Command
MS-DOS
MS-DOS
Windows 출현 이전 PC 운영체제
Microsoft(MS)가 개발
Disk에서 올라오는 운영체제이다(DOS).
MS-DOS는 다음과 같은 일을 수행한다.
․시스템과의 통신
․디스크 조작
․파일 관리
․입출력 관리
․환경 설정
기타
MS-DOS 내부 명령어
DOS 부팅시 주기억 장치에 적재되는 명령
내부 명령어의 종류
DIR : 디렉토리 아래 파일 이름들을 화면에 보여준다.
VER : 현재 사용 중인 MS-DOS의 버전을 알려준다.
COPY : 파일을 복사한다.
TYPE : TEXT 파일의 내용을 화면에 보여준다.
REN : 파일의 이름을 바꾼다.
DEL : 파일을 지운다.
CD : 사용자가 작업하려는 디렉토리로 이동한다.
MD : 새로운 디렉토리를 만든다.
RD : 디렉토리를 지운다.
MS-DOS 외부 명령어
디스크에 있다가 명령이 호출될 때 메모리로
예:
FORMAT :
DISKCOPY :
DISKCOMP :
ATTRIB :
기타.
디스크를 초기화.
디스크 전체를 복사.
두 개의 디스크 비교.
파일의 속성을 바꾼다
Windows
[MS-DOS]  [MS-DOS/Windows 공존]  [Windows]
Windows 1.0
Windows 95
일반 프로그램
일반 프로그램
응용
프로그램
MS-DOS
Windows
MS-DOS
Hardware
(표기)
응용 프로그램
일반 프로그램
Windows
흡수됨
Hardware
운영체제
Hardware
Windows 용도별 분류
개인용 (Windows 9 5/98)
기업용 (Windows NT 3.1)
개인용과 기업용은 외형적으로는 유사함
그러나 내부구조가 상이했음
개인용:
과거 DOS 프로그램들과의 호환성을 중요시
기업용:
최초의 32 Bit 윈도우  고성능화
통합형 (Windows XP)
Windows 에서 시작된 기능들
PnP (Plug & Play)
ㅇ 과거
device add/remove?
OS reboot 필요
ㅇ Windows-95 부터
시스템 가동 중 device add/remove
OLE 기능
(Object Linking & Embedding)
Ctrl-V
버퍼
Ctrl-C
한 응용 프로그램의 정보를 다른 응용 프로그램에
응용 프로그램 간에 정보를 전송하고 공유하는 방법.
Rendering
“A”의 bitmap
Windows
프린터나 스크린에게 Bitmap을 보냄 (Not ASCII Code).
(이 변환을 "rendering" 또는 “raster” 작업이라고 부름.)
(Window 이전에는 출력 하드웨어에서 rendering을 처리했음.)
장점:
출력 하드웨어가 rendering 용 CPU를 안가져도 됨.
rendering 용 font 파일을 안가져도 됨.
가격이 내려감.
상호 호환성이 향상됨.
그림-13 linux 커널의 모듈화
메모리
On-demand
module 1
module 1
module 2
Linux
kernel
module 3
...