1. 응용 SW 기초 기술 활용

header

1. 운영체제의 개념 :star::star:

운영체제(OS; Operating System)의 정의

운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하는 여러 프로그램의 모임이다.
사용자와 하드웨어 간의 인터페이스로 동작하는 시스템 소프트웨어의 일종이다.

운영체제의 목적 처신반사

처리 능력, 신뢰성, 반환 시간, 사용 가능도

💡 : 운영체제의 성능을 평가하는 기준!

운영체제의 구성 제작감자 처서문어

제어 프로그램(Control Program)

  • 작업 제어 프로그램, 감시 프로그램, 자료 관리 프로그램

처리 프로그램(Processing Program)

  • 서비스 프로그램, 문제 프로그램, 언어 번역 프로그램

운영체제의 종류 W U LI M A M I

Windows, UNIX, LINUX, MacOS, MS_DOS, Android, iOS

운영체제 운영 기법의 발달 과정 일다시실범분

일괄 처리 시스템다중 프로그래밍 시스템시분할 시스템다중 처리 시스템실시간 처리 시스템범용 시스템분산 처리 시스템

🌟 각 과정 핵심 한눈에 보기
발달과정(시스템 명칭) 핵심 특징
일괄처리(Batch) 작업을 모아 한 번에 처리
다중 프로그래밍(Multiprogramming) CPU 활용 극대화
시분할(Time-sharing) 사용자 체감 동시 사용
다중 처리(Multiprocessing) 여러 CPU 병렬 처리
실시간(Real-time) 응답 기한 반드시 준수
범용(General-purpose) 다양한 작업 가능
분산 처리(Distributed) 여러 컴퓨터 공동 처리

2. Windows :star::star::star:

최신 Windows의 특징 그32선플DO파기향

Windows는 컴퓨터 시스템의 하드웨어를 효율적으로 관리하고, 사용자가 컴퓨터를 쉽게 사용할 수 있도록 인터페이스를 제공하는 운영체제이다.

  • 그래픽 사용자 인터페이스(GUI) 사용
  • 선점형 멀티태스킹
  • 32비트 또는 64비트 데이터 처리
  • FAT32 파일 시스템
  • 플러그 앤 플레이(PnP)
  • OLE(Object Linking and Embedding)
  • 255자의 긴 파일 이름
  • 향상된 네트워크 기능
  • DOS와 호환

바로 가기 키(단축키)

바로 가기 키 기능
Alt + F4 현재 창 또는 프로그램 종료
Shift + Delete 휴지통 거치지 않고 바로 삭제
Win + 0 ~ 9 작업 표시줄의 해당 순서 앱 실행
Win + D 바탕화면 보기/숨기기 토글
Win + E 파일 탐색기 열기
Win + L 화면 잠금
Win + P 화면 출력 모드 전환(프로젝터 등)
Win + Ctrl + D 새 가상 데스크톱 추가
Win + Ctrl + F4 현재 가상 데스크톱 닫기
Win + Shift + S 화면 캡처(스니핑 툴)
Win + V 클립보드 기록 보기

3. UNIX / LINUX :star::star:

UNIX의 개요 및 특징

UNIX는 1960년대 AT&T 벨 연구소, MIT, General Electric이 공동 개발한 운영체제

  • 시분할 시스템을 위해 설계된 대화식 운영체제
  • 소스가 공개된 개방형 시스템
  • 대부분 C 언어로 작성
  • 크기가 작아 가벼움
  • Multi-User, Multi-Tasking 지원
  • 많은 네트워킹 기능 제공
  • 계층적 트리 구조의 파일 시스템
  • 표준 입/출력을 통해 명령어 파이프 라인 구성

UNIX 시스템의 구성 커쉘유

요소 특징
커널(Kernel) UNIX의 가장 핵심적인 부분
컴퓨터 부팅될 때 주기억장치 적재 후 상주하면서 실행
하드웨어 보호 및 프로그램과 하드웨어간 인터페이스
프로세스 관리, 기억장치 관리, 파일 관리, 입/출력 관리, 데이터 전송 및 변환 등 여러 가지 기능 수행
쉘(Shell) 사용자와 커널 사이의 인터페이스 역할
명령어 해석 및 실행
다양한 쉘 종류: Bourne Shell, C Shell, Korn Shell, Bash
유틸리티 프로그램 시스템 관리사용자 작업을 위한 보조 프로그램
파일 조작, 텍스트 처리, 네트워크 관리
ls, cp, mv, grep, awk, sed

LINUX의 개요 및 특징

LINUX는 1991년대 리누스 토발즈UNIX를 기반으로 개발한 운영체제

  • 커널 재배포 허용
  • 커널 및 소스 공개
  • UNIX와 완벽히 호환
  • 대부분의 특징이 UNIX와 동일

4. 운영체제의 기본 명령어 :star::star::star:

운영체제 기본 명령어 개요

운영체제는 CLI와 GUI로 제어할 수 있음

  • CLI(Command Line Interface): 키보드로 명령어를 직접 입력하여 작업 수행
  • GUI(Graphical User Interface): 마우스로 아이콘이나 메뉴를 선택하여 작업을 수행

Windows 기본 명령어

CLI 기본 명령어

명령 프롬프트 창에 명령어를 입력하여 작업 수행

명령어 기능 예시
dir 디렉토리 내용 보기 dir C:\
copy 파일 복사 copy file1.txt file2.txt
del 파일 삭제 del file.txt
md 디렉토리 생성 md newfolder
cd 디렉토리 이동 cd C:\Windows
🌟 Windows CLI 명령어 요약표
파일/디렉토리 관리 설명 정보확인/네트워크 설명 시스템 제어/유틸 설명
dir 목록 출력 ipconfig IP 정보 확인 tasklist 프로세스 목록
copy 파일 복사 ping 네트워크 연결 테스트 taskkill 프로세스 종료
move 이동/이름 변경 tracert 경로 추적 cls 화면 지우기
del 파일 삭제 systeminfo OS 환경 정보 shutdown 시스템 종료/재부팅
md / mkdir 디렉토리 생성 netstat 포트/통신 확인 sfc 시스템 파일 검사
cd / chdir 디렉토리 이동 arp MAC/IP 변환 정보 sc 서비스 제어
ren 파일 이름 변경 nslookup DNS 조회 driverquery 드라이버 목록
rd / rmdir 디렉토리 삭제 hostname 호스트명 표시 reg 레지스트리 관리

GUI 기본 명령어

바탕 화면이나 Windows 탐색기에서 마우스로 아이콘을 클릭하여 실행

UNIX/LINUX 기본 명령어

CLI 기본 명령어

쉘(Shell)에 명령어를 입력하여 작업 수행

명령어 기능 예시
ls 디렉토리 내용 보기 ls -la
cat 파일 내용 보기 cat file.txt
rm 파일 삭제 rm file.txt
chmod 파일 권한 변경 chmod 755 file.txt
pwd 현재 디렉토리 경로 보기 pwd
🌟 Unix 명령어 요약표
파일 관리 설명 텍스트/로그 처리 설명 시스템/권한 관리 설명
ls 목록 출력 grep 패턴 검색 ps 프로세스 목록
cp 파일 복사 awk 필드 기반 처리 kill 프로세스 종료
mv 이동/이름 변경 sed 스트림 편집 chmod 권한 변경
rm 파일 삭제 head 앞부분 출력 chown 소유자 변경
mkdir 디렉토리 생성 tail 뒷부분 출력    
pwd 현재 위치 cat 내용 출력    
cd 디렉토리 이동 find 검색    
rmdir 디렉토리 삭제 tar 압축/묶기    

GUI 기본 명령어

UNIX와 LINUX는 기본적으로 CLI를 사용하지만, X Window라는 별도의 프로그램을 설치하여 GUI 방식으로 운영 가능

5. 프로세스 관리 및 스케줄링 :star::star:

프로세스(Process)의 정의 실실프프비운PCB

프로세스는 일반적으로 프로세서(처리기, CPU)에 의해 처리되는 사용자 프로그램, 즉 실행중인 프로그램을 의미하며, 작업(Job) 또는 태스크(Task)라고도 한다.

  • 실기억장치에 저장된 프로그램
  • 프로세서가 할당되는 실체
  • 프로시저가 활동중인 것
  • 운영체제가 관리하는 실행 단위
  • 실행중인 프로그램
  • PCB를 가진 프로그램
  • 비동기적 행위를 일으키는 주체

프로세스 상태 전이

프로세스 상태 전이
프로세스 상태 전이
  • 제출(Submit): 작업 처리를 위해 사용자가 작업을 시스템에 제출
  • 접수(Hold): 제출된 작업이 스풀 공간에 저장된 상태
  • 준비(Ready): 스케줄러에 의해 프로세서에 할당될 준비가 된 상태 (준비상태 큐)
  • 실행(Running): 프로세서에 할당되어 실행 중인 상태
  • 대기(Waiting): 실행 중인 프로세스가 입출력 등의 이유로 대기 중인 상태
  • 종료(Terminate): 작업 처리가 완료된 상태

스케줄링

스케줄링은 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업을 의미하며, 이를 수행하는 것을 스케줄러라 함.

  • 프로세스가 생성되어 완료될 때까지 프로세스는 여러 종류의 스케줄링 과정을 거침
  • 프로세스 스케줄링 기법에는 비선점(Non-preemptive) 스케줄링과 선점(Preemptive) 스케줄링이 있다

비선점 스케줄링 FSHP

이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법

기법 설명 특징
FCFS First Come First Served
준비상태 큐에 도착한 순서에 따라 차례로 CPU 할당
FIFO 방식, 공정하지만 긴 작업이 있으면 대기시간 증가
SJF Shortest Job First
실행 시간이 가장 짧은 프로세스에게 먼저 CPU 할당
평균 대기시간 최소화, 기아현상 발생 가능
HRRN Highest Response Ratio Next
대기 시간과 서비스 실행 시간을 이용하는 기법
SJF의 기아현상 보완, 응답비율 계산
PS(우선순위) Priority Scheduling
가장 높은 우선순위 프로세스에게 먼저 CPU 할당
우선순위에 따른 처리, 기아현상 발생 가능

선점 스케줄링 SR다다

우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법

기법 설명 특징
SRT Shortest Remaining Time
남은 실행 시간이 가장 짧은 프로세스에게 CPU 할당
SJF의 선점 버전, 동적 우선순위
RR Round Robin
시간 할당량(Time Quantum)을 정하여 순환 방식으로 CPU 할당
공정한 처리, 대화형 시스템에 적합
다단계 큐 Multi-level Queue
프로세스를 여러 그룹으로 분류하여 각각 다른 큐에서 관리
프로세스 유형별 차별적 처리
다단계 피드백 큐 Multi-level Feedback Queue
프로세스가 큐 간 이동 가능한 다단계 큐
동적 우선순위 조정, 복잡하지만 유연함