사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어
리눅스
오픈 소스 기반의 운영체제
Mac
GUI 기반의 운영체제
CLI(Command Line Interface)
사용자가 직접 명령어를 입력하여 제어하는 방식
GUI(Graphic User Interface)
마우스로 화면을 클릭하여 그래픽 위주로 제어하는 방식
Help
를 명령창에 입력해 검색 가능
ATTRIB
: 파일 속성 변경CALL
: 한 프로그램에서 다른 프로그램을 호출CD
: 현재 디렉터리명을 보여주거나 디렉터리를 바꿈CHKDSK
: 디스크를 검사하고 상태 보고서를 표기CLS
: 화면을 지움CMD
: 명령 프롬프트 창을 열어줌COMP
: 파일을 비교DISTPART
: 디스크 파티션 속성을 표시하거나 구성ECHO
: 메시지를 표시하거나 ECHO 설정 변경ERASE
: 파일 삭제EXIT
: 명령 인터프리터 종료최상위 유저는 #
로 표시하고 일반 유저는 $
로 표시함
--help
, -h
, -man
을 명령어 뒤에 붙여 도움말 확인 가능
uname -a
: 시스템의 모든 정보 확인uname -r
: 운영체제 배포 버전 확인cat
: 파일의 내용을 출력uptime
: 시스템의 가동 시간과 현재 사용자 수, 평균 부하량 등을 확인id
: 사용자의 로그인명, id, 그룹 id 등을 출력last
: 시스템 부팅부터 현재까지 모든 사용자의 로그인과 로그아웃 정보를 출력who
: 현재 접속 사용자 정보 출력ls
: 현재 디렉터리의 파일 및 폴더를 출력pwd
: 현재 작업 디렉터리의 절대 경로를 출력rm
: 파일을 삭제cp
: 파일을 복사mv
: 파일을 이동rsync
: 로컬 또는 원격에 파일과 디렉터리를 복사하고 동기화ps
: 현재 실행 중인 프로세스 목록을 출력pmap
: PID를 기준으로 메모리 맵 정보를 출력kill
: 특정 PID의 프로세스를 종료chmod
: 파일이나 디렉터리의 권한 수정chown
: 파일이나 디렉터리의 소유자, 소유 그룹 수정ifconfig
: 네트워크 인터페이스 확인 및 설정host
: 도메인명을 알고 있는데 IP 주소를 모르거나 그 반대의 경우에 사용tar
: 여러 파일을 하나의 파일로 묶거나 풀 때 사용gzip
: 압축을 담당grep
: 입력으로 전달된 파일에서 특정 문자열을 찾을 때 사용find
: 특정 파일을 찾을 때 사용df
: 시스템에 마운트된 하드디스크의 남은 용량을 확인할 때 사용du
: 파일 사이즈를 KB 단위로 출력cd
: 디렉터리를 이동프로그램의 실행이 종료될 때까지 메모리를 가용한 상태로 유지 및 관리하는 기능
CPU와 데이터를 송수신하는 상황에서 프로세스에 대한 종합적인 관리 기법
프로세스 상태
생성(Create) 상태 : 사용자에 의해 프로세스가 생성된 상태
준비(Ready) 상태 : CPU를 할당받을 수 있는 상태
실행(Running) 상태 : CPU를 할당받아 동작 중인 상태
대기(Waiting) 상태 : CPU를 양도하고 입출력 처리가 완료될 때까지 대기 리스트에서 기다리는 상태
완료(Complete) 상태 : 주어진 시간 내에 완전히 수행을 종료한 상태
프로세스 상태 전이
Dispatch : 준비 상태의 프로세스 중 실행될 프로세스를 선정하여 CPU를 할당 (Ready → Running)
Timer run out : 실행 상태의 프로세스가 지정된 시간이 초과되어 스케줄러에 의해 PCB 저장 및 CPU 반납 후 다시 준비 상태로 전이 (Running → Ready)
Block : 실행 상태의 프로세스가 지정된 할당 시간을 초과하기 전에 입출력과 같은 사건이 발생하여 스스로 CPU를 반납하고 대기 상태로 전이 (Running → Waiting)
wake-up : 대기하던 사건이 종료되면 프로세스에게 종료 사실을 wait & signal 등을 통해 알려주고 준비 상태로 전이 (Waiting → Ready)
Swap-in : 프로세스에게 기억장치가 할당된 경우 (지연 상태 → 활동 상태)
Swap-out : 프로세스가 기억장치를 잃은 경우 (활동 상태 → 지연 상태)
CPU를 사용하려는 프로세스들 사이의 우선순위를 관리하는 작업
① 주요 용어
② 유형
선점형 스케줄링 : 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유 가능한 스케줄링
비선점형 스케줄링 : 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유 불가한 스케줄링
③ 알고리즘
선점형 스케줄링
Round Robin : 프로세스는 같은 크기의 CPU 시간을 할당받고, 시간 내에 완료하지 못하면 대기 큐의 맨 뒤로 보내짐
SRT : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고 남은 처리 시간이 더 짧은 프로세스가 대기 큐에 생기면 언제라도 선점됨
Multi Level Queue : 여러 개의 큐를 이용해 상위 단계 작업이 하위 단계 작업을 선점하고, 각 큐는 독자적인 스케줄링 기법을 사용
Multi Level Feedback Queue : 프로세스 특성에 따라 큐마다 다른 CPU 시간 할당량을 부여하고, 새로운 프로세스는 높은 우선순위에서 시작하여 점점 낮은 우선순위 큐로 이동하며, 마지막 단계는 라운드 로빈 방식을 적용함
비선점형 스케줄링
FIFO : 프로세스가 대기 큐에 도착한 순서에 따라 CPU를 할당함
Priority : 프로세스별 우선순위가 주어지고, 우선순위에 따라 CPU를 할당함, 동일 순위는 FIFO 사용
Deadline : 작업들이 명시된 시간이나 기한 내에 완료되도록 계획
SJF : 대기 큐에서 가장 짧은 서비스 시간을 가지는 프로세스를 수행함
→ 기아 현상 발생 가능 : 시스템 부하가 많아 대기 큐의 낮은 우선순위를 갖는 프로세스가 무한정 기다리는 현상, Aging을 활용해 해결
HRN : 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택
→ 기아 현상 최소화
물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술
플랫폼 가상화 : 호스트 프로그램이 게스트 프로그램을 만들어 독립된 환경을 만들어 낸 것처럼 보여주는 기법
리소스 가상화 : 게스트 소프트웨어 위에서 사용자는 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용하는 기법
컴퓨팅 가상화
물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활용할 수 있도록 하는 기술
ex. 하이퍼바이저
스토리지 가상화
스토리지와 서버 사이에 SW/HW 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술
ex. 분산 파일 시스템
I/O 가상화
서버의 I/O 자원을 물리적으로 분리하고 케이블과 스위치 구성을 단순화하여 효율적인 연결을 지원하는 기술
ex. 가상 네트워크 인터페이스 카드
컨테이너
컨테이너화된 애플리케이션들이 단일 운영체제상에서 실행되도록 해주는 기술
ex. 도커
분산 처리
여러 대의 컴퓨터 계산 및 저장능력을 이용하여 커다란 계산 문제나 대용량의 데이터를 처리하고 저장하는 기술
네트워크 가상화
물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단으로 중계장치의 가상화를 통한 가상 네트워크를 지원하는 기술
ex. SDN, NFV
인터넷을 통해 가상화된 컴퓨터 시스템 리소스를 제공하고, 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술
사설 클라우드 : 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원을 사용하여 내부에 구축되어 운영되는 클라우드, 직접 통제가 가능하며 보안성을 높일 수 있음
공용 클라우드 : 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드, 확장성과 유연성이 뛰어남
하이브리드 클라우드 : 사설 클라우드와 공용 클라우드를 모두 사용하는 클라우드, 사설 클라우드의 구축 비용 문제와 공용 클라우드의 보안성 문제를 해결
인프라형 서비스 (IaaS) : 시스템 자원을 클라우드로 제공하는 서비스
플랫폼형 서비스 (PaaS) : 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
소프트웨어형 서비스 (SaaS) : 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스