본문 바로가기
정보처리기사/이론설명

[이론설명 이기적] 운영체제

by wildOjisan 2025. 7. 24.

✅ 1. 운영체제란 무엇인가? (정의부터 시작)

🔷 정의 (공식 느낌)

**운영체제(OS, Operating System)**는 사용자와 하드웨어 사이에서 중재자(관리자, 관리자 프로그램) 역할을 하는 시스템 소프트웨어이다.

  • 컴퓨터 자원을 효율적으로 관리하고
  • 사용자에게 편리한 인터페이스를 제공하며
  • 여러 프로그램이 동시에 실행되도록 도와준다

✅ 2. 왜 운영체제가 필요한가? (등장 배경)

옛날엔 컴퓨터에 운영체제가 없었다.

  • 사람이 직접 기계어로 명령을 주고받았음 (너무 어려움)
  • 프로그램 하나 끝날 때마다 사람이 다시 세팅
  • 하드웨어 직접 제어해야 했음 (디스크 꺼내고 넣고…)

👉 그래서 복잡한 하드웨어를 대신 관리하고, 사람이 쉽게 사용할 수 있게 도와주는 시스템이 필요해졌음
➡️ 그게 바로 운영체제


✅ 3. 운영체제가 하는 일 (핵심 기능 4가지)

이건 시험에도 자주 나와. 이렇게 기억하면 돼:

“운영체제는 자원 관리자 + 사용자 도우미”

🟨 1. 프로세서 관리 (CPU 제어)

  • 어떤 프로그램에게 CPU를 언제 얼마나 줄지 결정
  • ➤ 예: 워드 작업 중 유튜브도 틀면, CPU를 번갈아 사용하게 스케줄링

🟨 2. 기억장치(메모리) 관리

  • 여러 프로그램이 RAM을 나눠 쓰게 함
  • 누가 어디부터 얼마만큼 쓸지 관리
  • ➤ 예: 카톡 + 브라우저 + 메모장 동시에 실행

🟨 3. 입출력장치(I/O) 관리

  • 마우스, 키보드, 프린터, 하드디스크 등 제어
  • 사용자와 하드웨어 사이 인터페이스 역할
  • ➤ 예: 파일 열기 → 운영체제가 하드디스크로부터 읽어와서 보여줌

🟨 4. 파일 시스템 관리

  • 데이터를 읽고, 쓰고, 저장하는 방식 정의
  • 폴더 구조, 권한, 이름 관리 등
  • ➤ 예: 문서.docx 라는 이름으로 저장하고 열기

 

응답시간 Response Time 처음 요청하고 나서 CPU가 처음 반응할 때까지 시간
대기시간 Waiting Time CPU 쓰기 전까지 대기 큐에서 기다린 총 시간
실행시간 Execution Time 또는 Service Time 실제 CPU에서 실행된 시간
반환시간 Turnaround Time 요청 ~ 종료까지 전체 걸린 시간
시간간격 Time Quantum (시분할 시스템) 하나의 프로세스가 CPU를 사용할 수 있는 시간 조각 (할당 시간)

 

 

 

 

---------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

 

✅ 1. UNIX란?

🔷 정의

UNIX는 1969년에 미국 AT&T 벨 연구소에서 개발한 멀티태스킹/다중 사용자 기반 운영체제
즉, “여러 사람이 동시에 쓰고 여러 작업을 동시에 처리할 수 있는 운영체제의 시초”


🔷 왜 만들어졌나?

  • 당시 컴퓨터는 크고 비쌌고, 한 번에 한 사람만 쓸 수 있었음
  • 벨 연구소에서 **“여러 명이 동시에 작업할 수 있는 시스템”**을 만들고 싶었음
  • 그래서 C언어로 만든 범용 운영체제인 UNIX가 나옴

🔷 UNIX의 특징

 

멀티태스킹 여러 작업 동시에 처리 가능
다중 사용자 여러 사용자가 로그인해서 각자 작업 가능
이식성(Portability) 다른 기계에서도 쉽게 사용할 수 있게 C언어로 작성됨
보안과 안정성 시스템이 죽지 않고 오래 동작하도록 설계
텍스트 기반 인터페이스 GUI가 없고 주로 터미널 명령어 사용
 

✅ 2. Linux란?

🔷 정의

리눅스는 UNIX의 철학과 구조를 따라 만든 오픈소스 운영체제 커널
1991년, 핀란드의 대학생 **리누스 토발즈(Linus Torvalds)**가 혼자 만들기 시작한 게 시초


🔷 왜 만들어졌나?

  • UNIX는 상용 라이선스를 요구함 (즉, 돈이 들었음)
  • 학생, 개발자들이 자유롭게 쓸 수 있는 무료 UNIX 스타일 OS를 원했음
  • 그래서 커널은 리누스가 만들고, 다른 사람들이 파일 시스템, 컴파일러 등을 붙여서 발전시킴

UNIX는 상용 운영체제의 조상, Linux는 UNIX 철학을 따라 만든 무료 오픈소스 운영체제이다.

 

 

[사용자]
   ↓
[쉘 (Shell)] ← 명령어 입력
   ↓
[커널 (Kernel)] ← 하드웨어 제어
   ↓
[하드웨어]

✅ 커널 (Kernel)

운영체제의 심장부(핵심). 하드웨어를 직접 제어하는 부분

🟦 정의

커널은 CPU, 메모리, 입출력 장치 등 자원을 직접 제어하는 UNIX의 핵심 컴포넌트예요.

  • 메모리는 누가 얼마나 쓸지
  • CPU는 어떤 순서로 프로그램을 실행할지
  • 디스크에 데이터를 어떻게 읽고 쓸지

 

✅ 쉘 (Shell)

사용자와 커널 사이에서 명령을 해석해주는 통역사(인터페이스)

🟩 정의

쉘은 사용자가 입력한 명령어를 해석해서 커널에게 전달하는 소프트웨어예요.
커널은 직접 못 만지니까, 쉘을 통해 명령을 전달하는 거예요.

 

 

✅ 유틸리티 (Utility)

UNIX에서 제공하는 기능별 보조 프로그램들

🟨 정의

UNIX 시스템에서 제공하는 파일 관리, 텍스트 처리, 시스템 관리 등을 위한 도구들


📌 유틸리티의 예시

명령어                                                                          기능

 

ls 파일 목록 보기
cp, mv, rm 파일 복사, 이동, 삭제
grep 문자열 검색
ps, top 프로세스 확인
chmod, chown 권한 변경
vi 텍스트 편집기
tar, gzip 파일 압축

 

 

 

 

----------------------------------------------------------------------------------------------------------------------------------------

 

 

 

 

✅ chmod (Change Mode) — 권한을 바꾸는 명령어

🔷 리눅스 파일에는 "권한"이 있음

$ ls -l
-rw-r--r--  1 user user  hello.txt

여기서 -rw-r--r-- ← 이게 바로 권한이야.

- 파일 종류 (파일이면 -, 폴더면 d)  
rw- 소유자 권한 (읽기,쓰기)  
r-- 그룹 권한 (읽기만)  
r-- 기타 사용자 권한 (읽기만)

🔧 chmod 사용법 (숫자 모드)

우리가 권한을 숫자로 바꿀 수 있어:

권한                                                                                                                                                         숫자 값

 

r (read, 읽기) 4
w (write, 쓰기) 2
x (execute, 실행) 1
 

더해서 사용함

예: rw- → 4 + 2 = 6, r-- → 4


💡 예제

chmod 755 myscript.sh

 

대상                                        숫자                권한

소유자 7 rwx (읽기+쓰기+실행)
그룹 5 r-x (읽기+실행)
기타 5 r-x

→ 내가 만든 실행파일을 "나만 수정 가능하고, 다른 사람은 실행만 가능"하게 만들기!

 

 

 

 

---------------------------------------------------------------------------------------------------------------------------------------

 

 

 

 

✅ umask (User Mask) — 파일/폴더 생성 시 기본 권한을 조절

❓ 왜 필요한가?

  • 파일을 만들면 기본적으로 권한이 자동으로 설정돼
  • 근데 그걸 너무 열려있거나, 너무 막혀 있으면 안 좋잖아?
  • 그래서 기본 권한에서 빼는 값이 바로 umask

📌 umask는 “빼기” 개념!

실제 권한 = 기본 권한 - umask

예:

umask 002
기본값                         -               umask                        =                 실제 권한

 

666 - 002 = 664 (rw-rw-r--)
 

→ 파일 만들면 소유자, 그룹은 읽기 쓰기 가능, 기타는 읽기만 가능