✅ 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
| 666 | - | 002 | = | 664 (rw-rw-r--) |
→ 파일 만들면 소유자, 그룹은 읽기 쓰기 가능, 기타는 읽기만 가능
'정보처리기사 > 이론설명' 카테고리의 다른 글
| [이론설명 이기적] 운영체제 - 기억 장치 관리 (3) | 2025.07.28 |
|---|---|
| [이론설명 이기적] 프로세스 (3) | 2025.07.25 |
| [이론설명 이기적] DB 물리 데이터베이스 모델링 (2) | 2025.07.24 |
| [이론설명 이기적] DB 데이터베이스 물리속성 설계 (1) | 2025.07.24 |
| [이론설명 이기적] DB ER- 다이어그램 (3) | 2025.07.23 |