사무자동화 필기 1강: 운영체제 기초, 핵심만 쏙쏙!
게시일:
작성자: 자청의 유튜브 추출기
사무자동화 산업기사 필기 공부, 어렵지 않아요!
공부 방법 꿀팁!
- 처음부터 다 외우려 하지 마세요! 너무 지쳐요.
- 강의를 보면서 전체적인 내용을 파악하고,
- 기출문제를 풀면서 중요한 내용을 집중적으로 외우는 게 최고예요!
파트 1: 사무자동화 시스템
1. 운영 체제 (Operating System, OS)
-
운영 체제란?
- 컴퓨터의 딱딱한 하드웨어랑 부드러운 소프트웨어 기능을 우리가 쓸 수 있게 도와주는 시스템 소프트웨어예요.
- 쉽게 말해, 컴퓨터랑 우리가 서로 소통할 수 있게 해주는 다리 같은 거죠!
- 컴퓨터 안에 있는 CPU, 메모리 같은 자원을 똑똑하게 관리해서 우리가 컴퓨터를 더 편리하게 쓸 수 있게 해줘요.
- 예를 들어, 게임을 하거나 인터넷을 할 때 어떤 작업을 먼저 처리할지 운영 체제가 알아서 관리해줘요.
-
운영 체제의 역할
- 인터페이스 역할: 컴퓨터 하드웨어(CPU, 메모리, 키보드, 모니터 등)와 우리 사이의 소통을 도와줘요.
- 하드웨어 자원 관리: CPU, 메모리, 입출력 장치 같은 컴퓨터 부품들을 관리해요.
- 응용 프로그램 지원: 게임, 엑셀, 한글 같은 프로그램들이 운영 체제가 제공하는 기능을 이용해서 컴퓨터 자원에 접근할 수 있게 해줘요. (윈도우, 리눅스, 유닉스 빼고 거의 다 응용 프로그램이라고 생각하면 돼요!)
-
사용자 인터페이스 (UI) 설계 4가지 원칙
- 직관성 (Intuitive): 따로 배우지 않아도 딱 보면 알 수 있게 만드는 것. (예: 버튼 모양만 봐도 어떤 기능인지 알 수 있게)
- 유효성 (Effective): 원하는 작업을 정확하고 완벽하게 할 수 있게 만드는 것.
- 학습성 (Learnable): 배우기 쉽고 사용하기 쉽게 만드는 것.
- 유연성 (Flexible): 사용자의 요구에 맞춰서 작업 방식이나 설정을 바꿀 수 있게 하는 것. (예: 메뉴 순서 바꾸기)
-
운영 체제의 동작
- 컴퓨터 전원을 켜면 운영 체제가 보조 기억 장치(하드디스크 등)에서 주기억 장치(RAM)로 로딩돼서 실행돼요.
- 운영 체제 전체를 RAM에 다 올리기엔 너무 크니까, 필요한 부분만 RAM에 올려서 효율적으로 사용해요.
- 커널 (Kernel): 운영 체제의 핵심적인 부분으로, 항상 RAM에 올라가서 실행돼요. 프로세스 관리, 메모리 관리 같은 중요한 일을 해요.
- 쉘 (Shell): 사용자의 명령어를 해석해서 커널에게 전달하는 명령어 해석기예요. 필요할 때만 RAM에 올라가서 작동해요. (예: 윈도우의 명령 프롬프트, 리눅스의 터미널)
-
디렉토리 (Directory)
- 파일들을 정리하기 위한 폴더 같은 개념이에요.
- 파일들을 체계적으로 관리하기 위한 구조를 말해요.
- 경로:
- 절대 경로: C:\부터 시작해서 파일까지의 전체 경로를 다 적는 것.
- 상대 경로: 현재 위치를 기준으로 파일까지의 경로를 적는 것. (점점
..은 상위 폴더, 점.은 현재 폴더를 의미)
- 윈도우:
\(백슬래시) 사용 - 유닉스/리눅스:
/(슬래시) 사용 - 트리 구조: 대부분의 운영 체제에서 사용하는 계층적인 파일 관리 구조예요. (폴더 안에 폴더, 폴더 안에 파일이 있는 것처럼)
-
운영 체제의 주요 기능
- 컴퓨터와 사용자 간의 인터페이스 제공
- 입출력 지원
- 프로그램 간섭 방지 및 사용자 데이터 보호
- 주기억 장치 관리
- CPU를 통한 프로그램 실행 관리
- 파일 관리
- 명령어 해석 및 실행
-
운영 체제의 목적 4가지
- 처리 능력 향상: 제한된 시간 안에 더 많은 데이터를 처리하는 것.
- 응답 시간 단축: 요청한 작업이 완료될 때까지 걸리는 시간을 줄이는 것.
- 신뢰도 향상: 시스템이 주어진 문제를 정확하게 해결하는 것.
- 사용 가능도 향상: 시스템이나 서비스를 필요할 때 즉시 사용할 수 있게 하는 것.
-
운영 체제의 발전 순서
- 일괄 처리 → 다중 프로그래밍 → 시분할 처리 → 다중 처리 → 실시간 처리 → 다중모드 시스템 → 분산 처리 시스템
-
운영 체제의 프로세스 (Process)
- 실행 중인 프로그램을 말해요. 컴퓨터의 작업 단위죠.
- PCB (Process Control Block): 각 프로세스를 관리하고 제어하는 데 필요한 정보를 담고 있는 자료 구조예요. (프로세스 상태, 프로그램 카운터, 레지스터 값 등)
- 문맥 교환 (Context Switching): CPU가 여러 프로세스를 번갈아 가며 실행할 때, 이전 프로세스의 상태를 저장하고 다음 프로세스의 상태를 불러와서 실행하는 과정이에요.
- 비동기적 행위: 어떤 작업이 완료될 때까지 기다리지 않고 다른 작업을 수행하는 것. (여러 작업을 동시에 하는 것처럼 보이게 함)
- 디스패치 (Dispatch): 준비 상태에 있는 여러 프로세스 중에서 하나를 선택해서 CPU를 할당하고 실행시키는 것.
-
프로세스의 종류
- 순차 프로세스: 하나의 프로세스가 끝날 때까지 다른 프로세스가 실행되지 않고 순서대로 하나씩 실행되는 것. (동기적)
- 병행 프로세스: 여러 프로세스가 동시에 실행되는 것처럼 보이게 하는 것. (실제로는 빠르게 전환)
-
프로그램 vs 프로세스
- 프로그램: 실행되기 전의 정적인 코드 상태 (하드디스크에 저장된 파일)
- 프로세스: 실행 중인 동적인 상태 (RAM에 올라가서 실행되는 작업)
-
프로세스의 상태 변화
- 제출 (Submit): 사용자가 작업을 시스템에 제출한 상태.
- 보류 (Hold): 제출된 작업이 디스크에 저장된 상태.
- 준비 (Ready): CPU를 할당받기 위해 기다리는 상태. (준비 큐에서 대기)
- 실행 (Running): CPU를 할당받아 실행되는 상태.
- 대기 (Waiting): 입출력 작업 등으로 인해 실행이 중단된 상태.
- 완료 (Terminate): 프로세스 실행이 끝나고 해제된 상태.
-
스케줄링 기법
- 선점형 스케줄링: 실행 중인 프로세스를 중단시키고 다른 프로세스에게 CPU를 할당할 수 있는 방식. (예: 라운드 로빈, SRT)
- 비선점형 스케줄링: 실행 중인 프로세스가 완료될 때까지 중단시킬 수 없는 방식. (예: FCFS, SJF)
- FCFS (First-Come, First-Served) / FIFO (First-In, First-Out): 먼저 온 프로세스를 먼저 처리하는 방식.
- SJF (Shortest Job First): 실행 시간이 가장 짧은 프로세스를 먼저 처리하는 방식. (기아 현상 발생 가능)
- HRN (Highest Response Ratio Next): SJF의 단점을 보완한 방식으로, 대기 시간과 실행 시간을 고려하여 응답률이 높은 프로세스를 먼저 처리.
- SRT (Shortest Remaining Time): 현재 실행 중인 프로세스보다 남은 실행 시간이 짧은 새로운 프로세스가 도착하면 현재 프로세스를 중단하고 새로운 프로세스를 실행하는 방식.
- 라운드 로빈 (Round Robin): 각 프로세스에게 일정 시간(타임 퀀텀)을 할당하고, 시간이 지나면 다른 프로세스에게 CPU를 할당하는 방식. (시분할 시스템의 대표적인 방식)
- MFQ (Multi-Level Feedback Queue): 다양한 특성의 작업이 혼합된 경우에 유용한 방식으로, 프로세스의 특성에 따라 여러 개의 대기 큐를 사용.
-
교착 상태 (Deadlock) 4가지 조건
- 상호 배제 (Mutual Exclusion): 한 번에 하나의 프로세스만 특정 자원을 사용할 수 있는 것.
- 점유와 대기 (Hold and Wait): 프로세스가 자원을 점유한 채로 다른 프로세스가 점유한 자원을 기다리는 것.
- 비선점 (No Preemption): 다른 프로세스가 점유하고 있는 자원을 강제로 뺏을 수 없는 것.
- 환형 대기 (Circular Wait): 각 프로세스가 다음 프로세스가 점유하고 있는 자원을 기다리며 원형으로 구성되는 것.
-
동기화 기법
- 뮤텍스 (Mutex): 한 번에 하나의 스레드 또는 프로세스만 공유할 수 있는 자원. (개수가 1개일 때 사용)
- 세마포어 (Semaphore): 여러 개의 공유 가능한 자원. (개수가 2개 이상일 때 사용)
-
문자 입력 소프트웨어 (IME - Input Method Editor)
- 한글, 일본어, 중국어처럼 문자가 많은 언어를 입력할 때 사용해요.
- 키보드 입력을 복잡한 문자로 변환해줘요.
-
운영 체제 환경 설정
- 사용자 계정 관리: 로컬 계정, 마이크로소프트 계정 (윈도우), 루트 계정, 일반 사용자 계정 (리눅스)
- 네트워크 설정: IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 설정.
ipconfig(윈도우),ifconfig또는ip a(리눅스) 명령어로 IP 주소 확인.
- 윈도우 보안: 바이러스 및 위협 방지, 방화벽, 장치 보안 등 설정.
- 디펜더 (Defender): 윈도우의 기본 방화벽.
- 비트라커 (BitLocker): 드라이브 암호화.
- 환경 설정 파일: 운영 체제나 프로그램의 동작 방식을 정의하는 파일. (레지스트리, XML, YAML, JSON, .conf 등)
- 환경 변수: 시스템 전체 또는 사용자에게 적용되는 설정값. (예: PATH 환경 변수)
-
운영 체제의 종류
- 데스크톱: 윈도우, 맥OS, 리눅스 등
- 서버: 유닉스 등
- 모바일: iOS, 안드로이드
- 임베디드: 스마트폰, 자동차, 가전제품 등에 사용되는 운영 체제. (제한된 자원, 실시간 처리, 높은 안정성이 특징)
-
운영 체제의 제어 수단
- CLI (Command Line Interface) / CUI (Character User Interface): 키보드로 명령어를 입력하는 방식.
- GUI (Graphical User Interface): 마우스로 아이콘이나 메뉴를 클릭하는 방식.
-
주요 명령어 (꼭 외우세요!)
- 윈도우:
dir: 현재 폴더 목록 확인cd: 디렉토리 변경md(또는mkdir): 새 디렉토리 생성del(또는erase): 파일 삭제cls: 화면 지우기find: 파일 내 문자열 검색chkdsk: 디스크 상태 점검format: 디스크 초기화
- 유닉스/리눅스:
ls: 파일/디렉토리 목록 확인cd: 디렉토리 이동pwd: 현재 작업 디렉토리 경로 출력mkdir: 디렉토리 생성rmdir: 디렉토리 삭제cp: 복사mv: 이동rm: 삭제cat: 파일 내용 출력grep: 파일 내 특정 문자열 검색find: 파일 시스템에서 파일 검색more: 파일 내용 페이지 단위 확인chmod: 접근 권한 변경chown: 소유자/그룹 변경ps: 프로세스 목록 확인top: 시스템 리소스 사용량 실시간 확인kill: 프로세스 종료
- 윈도우:
이 내용들을 바탕으로 꾸준히 공부하면 사무자동화 산업기사 필기, 꼭 합격할 수 있을 거예요! 파이팅!