본문 바로가기

Theory/OS

운영체제 이론 (2)

운영체제 (Operating System, OS) 개념 및 기능

정의 및 목적

  • 컴퓨터 하드웨어와 사용자 간 인터페이스 제공
  • 시스템 자원 효율적 관리
  • 신뢰성, 처리량, 응답 시간 향상

운영체제의 주요 기능

  • 프로세스 관리: 생성, 삭제, 통신, 스케줄링
  • 메모리 관리: 공간 할당 및 회수, 가상 메모리
  • 파일 관리: 파일 저장, 접근, 보호
  • 입출력 장치 관리: 장치 드라이버 관리

운영체제의 주요 종류

  • DOS, Windows, Unix, Linux, MacOS, Android, iOS 등

 

프로세스와 스케줄링

프로세스 (Process)

  • 실행 중인 프로그램, PCB로 상태 정보 관리
  • 프로세스 상태: 준비(Ready), 실행(Running), 대기(Blocked), 지연(Suspended)

프로세스 스케줄링

  • FCFS: 도착 순서대로 실행
  • Round Robin: 시간 할당량 기반 순환 실행
  • 우선순위 스케줄링: 우선순위 높은 작업 우선 실행

문맥 교환 (Context Switching)

  • CPU 사용 중 프로세스 교체

 

메모리 관리

메모리 관리 기법

  • 단일 연속 할당: OS와 사용자 프로그램 분할
  • 분할 할당: 메모리를 여러 영역으로 나눠 할당 (최초, 최적, 최악 적합)

가상 메모리 (Virtual Memory)

  • 보조기억장치 일부를 주기억장치처럼 사용
  • 페이징 (Paging): 페이지 단위로 메모리 관리
  • 페이지 교체 알고리즘: FIFO, LRU 등

 

교착상태 (Deadlock)

발생 조건

  • 상호배제, 점유와 대기, 비선점, 순환 대기

해결 방법

  • 예방, 회피, 탐지, 복구

임계구역, 상호배제, 세마포어

  • 임계구역: 동시 접근 제한 필요 영역
  • 상호배제: 한 프로세스만 접근 허용
  • 세마포어: 접근 제어 도구

 

UNIX 시스템

UNIX 개요 및 특징

  • 다중 사용자, 다중 작업, 대화형, 계층적 파일 시스템
  • 고성능, 확장성, 이식성, 보안

UNIX 주요 구성

  • 커널 (Kernel): 자원, 파일, 장치, 프로세스, 메모리 관리
  • 셸 (Shell): 사용자와 커널 인터페이스, 명령어 해석기
  • 파일 시스템: 정보 관리 (파일, 디렉터리)

명령어 구조

  • 명령어 + 옵션 + 인자 (ex. ls -l /tmp)

UNIX 주요 명령어 및 리눅스 필수 명령어

명령어
설명
date
날짜 및 시간 표시
time
시간 확인
which
명령어 위치 확인
help
명령어 도움말
cal
달력 출력
exit
셸 종료
man
명령어 도움말
history
명령어 기록 확인
useradd
사용자 추가
userdel
사용자 삭제
usermod
사용자 정보 변경
passwd
비밀번호 변경
ls
디렉터리 목록 표시
chown
소유자 변경
chgrp
그룹 변경
cat
파일 내용 보기
file
파일 종류 확인
more
페이지 단위 파일 출력
touch
빈 파일 생성
grep
문자열 검색
df
디스크 공간 확인
find
파일 검색
chmod
파일 권한 변경
cp
파일 복사
mv
파일 이동
rm
파일 삭제
cd
디렉터리 이동
pwd
현재 디렉터리 표시
mkdir
디렉터리 생성
du
디스크 사용량 확인

VIM 명령어

명령어
설명
:w
저장
:q
종료
:wq
저장 후 종료
:q!
저장 없이 강제 종료
i
입력 모드 전환
esc
명령 모드 전환
:set nu
행 번호 표시
:set nonu
행 번호 숨김
dd
한 줄 삭제
yy
한 줄 복사
p
붙여넣기
u
실행 취소
ctrl + r
실행 복구
/문자열
문자열 검색
:%s/old/new/g
전체 치환

UNIX 접속 및 로그인

접속 절차

  • 원격 접속 (Telnet, SSH, PUTTY)
  • 사용자 계정 (ID, Password)

로그인 성공 시

  • 프롬프트 ($ 또는 #)
  • 홈 디렉터리 자동 이동

UNIX 파일 시스템

구조

  • 루트(/)부터 시작하는 트리 구조
  • 디렉터리, 파일

윈도우 vs 유닉스 파일 시스템 비교

  • 윈도우: FAT, NTFS (클러스터 기반)
  • 유닉스: i-node 기반 (메타 데이터 포함)