728x90
반응형
[ 1 ] 운영체제 종류
( 1 ) 운영체제(OS; Operating System)
- 운영체제의 개념
- 운영체제는 사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해주는 소프트웨어이다.
- 운영체제의 특징
- 운영체제의 일반적 특징
- 사용자 편리성 제공
- 인터페이스 기능을 담당스케줄링 담당
- 자언관리
- 제어 기능
- 운영체제의 커널의 기능
- 운영체제는 크게 이너페이스(쉘) + 커널의 구조이다.
- 쉘(Shell)
- 쉘은 사용자가 입력시킨 명령어 라인을 읽어 필요한 시스템 기능을 실행시키는 명령어 해석기이다.
- 커널(Kernel)
- 커널은 운영체제의 핵심이 되는 기능들이 모여 있는 컴퓨터 프로그램이다.
- 커널의 기능
- 프로세스 관리
- 기억장치 관리
- 주변장치 관리
- 파일 관리
- 운영체제의 일반적 특징
( 2 ) 운영체제의 종류
- 윈도우 운영체제
- 윈도우즈는 MS-DOC의 멀티태스팅 기능과 GUI 환경을 제공하는 마이크로소프트 사가 개발한 운영체제이다
- 윈도우즈 운영체제 특징
- 그래픽 사용자 인터페이스 제공
- 선점형 멀티태스팅 방식 제공
- 자동감지 기능 제공
- OLE 사용
- 유닉스(Unix) 계열 운영체제
- 데니스 리치와 켄 톰슨(Ken Thompsn) 등이 함께 벨 연구소를 통해 만든 운영체제이며 90% 이상이 C언어로 구현되어 있는 운영체제로 범용 다중 사용자 방식의 시분할 운영체제이다
- 유닉스 계열 운영체제 특징
- 대화식 누영체제 기능 제공
- 다중 작업 기능 제공
- 다중 사용자 기능 제공
- 이식성 제공
- 계층적 트리 구조파일 시스템제공
- 리눅스(Linux) 운영체제
- 유닉스를 기반으로 개발되고 소스코드가 공개된 오픈 소스 기반의 운영체제이다.
- 리눅스는 데비안, 레드헷, Fedora, Ubuntu, CentOS와 같이 다양하게 출시되고 있다.
- 맥(Mac) 운영체제
- 애플이 유닉스를 기반으로 개발한 그래픽 사용자 인터페이스 기반의 운영체제이다
- 안드로이드(Android) 운영체제
- 휴대 전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램(웹 브라우저, 이메일 클라이언트 등)을 포함하고 있는 운영체제이다.
- 안드로이드 특징
- 리눅스 기반
- 자바와 코틀린 언어
- 런타임 라이브러리
- 안드로이드 소프트웨어 개발 키트
[ 2 ] 운영체제 기본 명령어 활용
( 1 ) 운영체제 제어
- 운영체제를 제어하기 위한 방법은 CLI와 GUI가 있다.
- CLI(Commad Line Interface)
- 사용자가 직접 명령어를 입력
- GUI(Graphic User Interface)
- 마우스로 화면을 클릭하여 그래픽 위주로 컴퓨터를 제어하는 방식
( 2 ) 윈도즈 운영체제의 기본 명령어
- ATTRIB : 파일 속성을 표시하거나 바꿈
- CALL : 한 일괄 프로그램에서 다른 일괄 프로그램을 호추
- CD : 현재 디렉토리를 표시하거나 이동
- CHKDSK : 디스크를 검사하고 상태 보고서 표시
- CLS : 화면을 지움 ( CMD 화면의 로그들을 제거 )
- CMD : Windows 명령 프롬프트 창을 새로 생성
- COMP : 두개 이상의 파일을 비교
- DISKPART : 디스크 파티션 속성을 표시하거나 구성
- ECHO : 메시지를 표시하거나 ECHO를 사용 또는 사용하지 않음
- ERASE : 하나 이상의 파일을 지움
- EXIT : CMD.EXE 프로그램을 마침 ( CMD 창 종료 )
( 3 ) 리눅스/유닉스 계열의 기본 명령어
- 리눅스/유닉스 운영체제의 기본 명령어
- 시스템 관련
- uname -a : 시스템의 모든 정보를 확인하는 명령
- uname -r : 운영체제의 배포버전을 출력하는 명령어
- cat : 파일의 내용을 화면에 출력하는 명령어
- uptime : 시스템의 가동 시간과 현재 사용자 수, 평균 부하량 등을 확인하는 명령
- 사용자
- id : 사용자의 로그인명, id, 그룹 id 등을 출력하는 명령어
- last : 시스템의 부팅부터 현재까지 모든 사용자의 로그인과 로긍웃에 대한 정보를 표시
- who : 현재 접속 사용자의 정보를 표시
- 파일 처리
- ls : 자신이 속해 있는 폴더 내에서 파일 및 폴더를 표시
- pwd : 현재 작업중인 디렉토리의 절대 경로 출력
- rm : 파일 삭제
- cp : 파일 복사
- mv : 파일 이동
- 프로세스
- ps : 현재 실행되고 있는 프로세스 목록 출력
- pmap : 프로세스 ID를 기준으로 메모리 맵 정보를 출력
- kill : 특정 PID 프로세스를 종료
- 파일 권한
- chmod : 특정 파일 또는 디렉토리의 퍼미션 수정
- chown : 파일이나 디렉토리의 소유자, 소유 그룹 수정
- 네트워크
- ifconfig : 네트워크 인터페이스를 설정하거나 화인
- host : 도메인명은 알고 있는데 ip주소를 모르거나 혹은 그 반대의 경우 사용하는 명령
- 압축
- tar : 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용 ( 압축은 불가 )
- 파일을 묶거나 풀 수는 없지만 압축을 담당하는 명령
- 검색
- grep : 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령
- find : 특정 파일을 찾는 명령
- 파일 이동
- cp : 디렉토리를 복사할 때 사용하는 명령
- rsync : 로컬 도는 원격에 파일과 디렉토리를 복사하고 동기화하는 명령어
- 디스크 사용
- df : 시스템에 마운트된 하드디스크의 남은 용량 확인
- du : 파일 사이즈를 킬로 바이트 단위로 보여주는 명령
- 디렉토리 이동
- cd : 디렉토리를 이동하는 명령
- 시스템 관련
- 리눅스/유닉스 운영체제의 파일 접근 관리 권한
- 리눅스/유닉스 파일 접근 제어 매커니즘
- User : 파일을 소유하고 있는 사용자(Owner)
- Group : 사용자를 제외하고 파일과 같은 그룹에 속해있는 모든 사용자 모임
- Other : 그 밖의 사용자
- 파일 접근 모드( 설정 명령어 : chmod )
- User :
- R : 4
- W : 2
- X : 1
- Group:
- R: 4
- W : 2
- X : 1
- Other
- R : 4
- W : 2
- X : 1
- User :
- 접근 권한 변경
- chmod [-R] permission file_name1 | drectory_name1 [file_name2 | directory_name2 .. ]
- 예)
- chmod o-w yoom.c
- yoom.c에 대한 other의 쓰기 권한 제거
- chmod 664 yoom.c
- yoom.c에 대한 접근 권한은 ( rw-rw-r-- )
- chmod o-w yoom.c
- 접근 권한을 기호로 기술
- 대상
- u(User), g(Group), o(Other)
- +(추가), -(제거), =(지정)
- r(읽기),w(쓰기), x(실행)
- 예 )
- chmod go-w yoom.c
- yoom.c에 대한 group과 other의 w 권한 제거
- chmod a=w yoom.c
- yoom.c에 대한 All(모든 사용자)에게 w 권한 설정
- chmod g+w, o-x yoom.c
- yoom.c에 대한 group에게 w 권한 추가, others에게 x 권한 제거
- chmod go-w yoom.c
- 대상
- 리눅스/유닉스 파일 접근 제어 매커니즘
[ 3 ] 운영체제 핵심 기능 파악
( 1 ) 운영체제 핵심 기능
- 메모리 관리( 반배할교 )
- 메모리 관리 기법 종류
- 반입 기법
- 주기억장치에 적재할 다음 프로세스의 반입 시기를 결정하는 기법
- 적재 시기 결정(When)
- 배치 기법
- 디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인지 결정하는 기법
- 메모리 적재 위치 결정(Where)
- 할당 기법
- 실행해야 할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인지 결정하는 기법
- 메모리 적재 방법 결정(How)
- 교체 기법
- 재배치 기법으로 주기억 장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지를 결정하는 기법
- 메모리 교채 대상 겨렁(Who)
- 반입 기법
- 메모리 배치 기법(초적악)
- 최초 적합(First-Fit)
- 프로세스가 적재될 수 있는 가용 공간 중에서 첫 번째 분할에 할당하는 방식
- 최적 적합(Best-Fit)
- 가용 공간 중에서 가장 크기가 비슷한 공간을 선택하여 프로세스를 적재하는 방식
- 공백 최소화 장점이 있음
- 최악 적합(Worst-Fit)
- 프로세스의 가용 공간 중에서 가장 큰 공간에 할당하는 방식
- 최초 적합(First-Fit)
- 메모리 할당 기법
- 연속 할당 기법
- 실행을 위한 각 프로세스를 주기억장치 공간 내에서 인접되게 연속하여 저장하는 방법
- 단일 분할 할당 기법 : 오버 레이스, 스와핑
- 다중 분할 할당 기법 : 고정분할 할당 기법, 동적 분할 할당 기법
- 실행을 위한 각 프로세스를 주기억장치 공간 내에서 인접되게 연속하여 저장하는 방법
- 분산 할당 기법
- 하나의 프로세스를 여러 개의 조각으로 나누어 주기억장치 공간 내 분산하여 배치하는 기법
- 페이징 기법
- 세그먼테이션 기법
- 페이징/세그먼테이션 기법
- 하나의 프로세스를 여러 개의 조각으로 나누어 주기억장치 공간 내 분산하여 배치하는 기법
- 연속 할당 기법
- 교체 기법
- 교체 기법 개념
- 교체 기법은 주기억 장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지 결정하는 기법
- 교제 기법 유형
- FIFO(First In First Out)
- 가장 먼저 들어온 페이지를 교체
- LRU(Least Recently Used)
- 가장 오랫동안 사용되지 않은 페이지를 교체
- LFU(Least Frequently Used)
- 참조 횟수가 가장 적은 페이지를 교체
- OPT(OPTimal Replacement)
- 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체
- NUR(Not Used Recently)
- LRU와 비슷한 알고리즘으로 최근 사용하지 않은 페이지를 교체
- SCR(Second ChanceReplacement)
- 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법으로 FIFO의 단점을 보완한 기법
- FIFO(First In First Out)
- 교체 기법 개념
- 메모리 관리 기법 종류
- 프로세스 관리(생준 실대완)
- 프로세스(Process) 개념
- 프로세스는 CPU의 의해 처리되는프로그램이다
- 프로세스 상태
- 하나의 프로세스는 여러 가지 이벤트에 의해 일련의 서로 구분되는 상태 변화를 겪는다
- 생생(Create) 상태
- 사용자에 의해 프로세스가 생성된 상태
- 준비(Ready) 상태
- CPU를 할당받을 수 있는 상태
- 실행(Runnig) 상태
- 프로세스가 CPU를 할당받아 동작 중인 상태
- 대기(Waiting) 상태
- 프로세스 실행 중 입출력 처리 등으로 인해 CPU를 양도하고 입출력 처리가 완료까지 대기 리스트에서 기다리는 상태
- 대기 리스트(Waiting List): 우선순위가 존재하지 않음
- 완료(Complete) 상태
- 프로세스 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태
- 프로세스 상태 전이
- 디스 패치
- 프로세스는 준비 상태에서 실행 상태로 전이
- 타이머 런 아웃
- 타임 슬라이스 만료, 선점 시 타임 아웃 발생
- 블록 = 입출력 발생
- 프로세스는 실행 상태에서 대기 상태로 전이
- 웨이크 업
- 프로세스는 대기 상태에서 준비 상태로 전이
- 디스 패치
- 프로세스(Process) 개념
- 프로세스 스케줄링
- 프로세스 스케줄링
- 스케줄링은 CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업이다
- 프로세스 스케줄링 주요 용어
- 서비스 시간
- 프로세스 결과를 산출하기까지 소요되는 시간
- 응답시간(Response Time)
- 프로세스들이 입력되어 서비스를 요청하고, 반응하기 시작할 때까지 소요되는 시간
- 반환시간(Turnaround Time)
- 프로세스들이 입력되어 수행하고 결과를 산출하기까지 소요되는 시간
- 반환 시간 = 대기시간 + 수행시간
- 대기시간
- 프로세스가 프로세서에 할당되기까지 큐에 대기하는 시간
- 평균 대기시간
- 프로세스 대기 큐에서 대기하는 평균 시간
- 종료시간
- 요구되는 Processing Time을 모두 수행하고 종료된 시간
- 시간 할당량(Time Quantum 또는 Time Slice)
- 한 프로세스가 프로세서를 독점하는 것을 방지하기 위해 섭스되는 시간 할당량
- 응답률
- (대기시간 + 서비스 시간) / 서비스 시간
- HRN(Highest Responce ratio Next) 스케줄링에서 사용
- HRN 스케줄에서 응답률이 높으면 우선순위가 높다고 판단
- 서비스 시간
- 프로세스 스케줄링 유형
- 선점형 스케줄링(Preemptive Scheduling)
- 하나의 프로세스가 CPU를 자치하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단 시키고 CPU를 점유하는 스케쥴링 방식
- SMMR
- SRT(Shortest Remaining Time)
- MLQ(Multi-Level Queue)
- MLFQ(MFQ)[Multi-Level Feedback Queue)
- Round Robin
- 실시간 응답 환경, Deadline 응답 환경
- 비선점형 스케줄링(Non Preemptive Scheduling)
- 한 프로세스가 CPU를 할당 받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU를 점유 불가능한 스케쥴링 방식
- 우기 HFS
- 우선 순위(Priority)
- 기한부(Deadline)
- HRN(High Response Ratio Next)
- FCFS(
- SJF(Shortest Job First)
- 처리 시간 편차가 적은 특정 프로세스 환경
- 선점형 스케줄링(Preemptive Scheduling)
- 프로세스 스케쥴링 알고리즘
- 선점형 스케줄링 알고리즘
- RR; Round Robin
- 프로세는 같은크기의 CPU 시간을 할당, 프로세스가 할당된 시간 내에 처리 완료를 못하면 준비 큐 리스트의 가장 뒤로 보내지고 ,CPU는 대기 중인 다음 프로세스로 넘어가는 스케줄링 기법
- SRT;Shortest Remaning Time
- 가장 짧은 시간이 소요되는 프로세스를 먼저 수행
- 다단계 큐(MLQ)
- 작업들을 여러 종류 그룹으로 분할 여러 개의 큐를 이용하여 상위 단계 작업에 의한 하위단계 작업이 선점 당하는 스케줄링 방식
- 다단계 피드백 큐(MLFQ)
- FCFS(FIFO)와 라운드 로빈 스케쥴링 기법을 혼합한 것으로, 새로운 프로세스는 높은 우선순위, 프로세스의 실행시간이 길어질수록 점점 낮은 우선순위 큐로 이동하고 마지막 단계는 라운드 로빈 방식을 적용하는 스케줄링 기법
- RR; Round Robin
- 비선점형 스케줄링 알고리즘의 유형
- 우선순위(Priority)
- 프로세스별로 우선순위가 주어지고, 우선순위에 따라 CPU를 할당하는 스케줄링 기법
- 동일 순위는 FCFS
- 기한부(Deadline)
- 작업들이 명시도니 시간이나 기한 내에 완료되도록 게획하는 스케줄링 기법
- FCFS(First Come First Service)
- 프로세스가 대기 큐에 ㄷ착한 순서에 따라 cpu를 할당 하는 스케줄링 기법
- FIFO 알고리즘이라고도 함
- SJF(Shortest Job First)
- 플세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원을 점유하는 스케줄링 기법
- HRN(Hight Response Ratio Next)
- 대기 중인 프로세스 중 현재 응답률(Response Ratio)이 가장 높은 것을 선택하는 스케ㅜㄹ링 기법
- SJF의 약점인 기아 현상을 보완한 기법으로 긴 작업과 짧은 작업간의 불평등 완화
- HRN의 우선순위 = (대기시간 + 서비스 시간) / 서비스 시간
- 우선순위(Priority)
- 프로세스 관리-교착상태
- 교착상태(Deadlock) 개념
- 교착상태는 다중 프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원할당을 무한정 대기하는 상태이다.
- 교착상태 발생 조건
- 상호 배제
- 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없는 상태
- 점유와 대기
- 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태
- 비선점
- 한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고 오직 점유한 프로세스만이 해제 가능한 상태
- 환형 대기
- 두 개 이상의 프로세스 간 자원의 점유와 대기가 하나의 원형을 구성한 상태
- 상호 배제
- 교착 상태 해결 방법
- 예방
- 상호 배제를 제외한 나머지 교착상태 발생 조건을 위배 하는 방안
- 점유 자원 해제 후 새 자원 요청
- 회피
- 안전한 상태를 유지할 수 있는 요구만 수락
- 은행가 알고리즘, Wound-Wait, Wait-Die
- 발견
- 시스템의 상태를 감시 알고리즘을 통해 교착 상태 검사
- 자원할당 그래프, Wait for Graph
- 복구
- 교착상태가 없어질때까지 프로세스를 순차적으로 Kll하여 제거, 희생자를 선택해야 하고 기아 상태 발생
- 프로세스 Kill, 자원선점
- 예방
- 교착상태(Deadlock) 개념
- 선점형 스케줄링 알고리즘
- 프로세스 스케줄링
( 2 ) 가상화, 클라우드
- 가상화(Virtualization) 개념
- 가상화는 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러개로 보이게 하는 기술이다.
- 가상화 종류
- 플랫폼 가상화
- 하드웨어 플랫폼 위에서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 마치 독립된 환경을 만드어 낸 것 처럼 보여주는 기법
- 리소스 가상화
- 게스트 소프트웨어 윙서 사용자는 독립된 하드웨어에서 소프트웨어가 실행되는 것 처럼 화룡ㅇ하는 기법
- 컴퓨팅 가상화
- 물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활요할 수 있도록 하는 기술
- 예 ) 하이퍼바이저
- 스토리지 가상화
- 스토리지와 서버 사이에 소프트웨어/하드웨어 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술
- 예 ) 분산 파일 시스템
- I/O 가상화
- 서버와 I/O 디바이스 사이에 위치하는 미들웨어 계층으로, 서버의 I/O 자원을 물리적으로 분리하고 케으블과 스위치 구성을 단순화하여 효율적인 연결을 지원하는 기술
- 예 ) 가상 네트워크 인터페이스 카드
- 컨테이너
- 컨테이너화된 애플리케이션들이 단일 운영체제상 에서 실행되도록 해주는 기술
- 예 ) 도커(Docker)
- 분산처리 기술
- 여러 대의 컴퓨터 계산 및 저장능력을 이용하여 커다란 계산문제나 대용량의 데이터를 처리하고 저장하는 기술
- 네트워크 가상화
- 물리적으로 떨어져 있는 다야한 장비들을 연결하기 위한 수단으로 중계장치(라우터, 스위치 등)의 가상화를 통한 가상 네트워크를 지원하는 기술
- 예 ) SDN, NFV
- 플랫폼 가상화
- 클라우드 컴퓨팅
- 클라우드 컴퓨팅 분류
- 사설 클라우드
- 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원을 사용하여 내부에 구축되어 운영하는 클라우드
- 공용 클라우드
- 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드
- 하이브리드 클라우드
- 기업 또는 조직 내부 자원을 이용한 사설 클라우드와 공용 클라우드를 모두 사용하는 클라우드
- 사설 클라우드
- 클라우드 컴퓨팅 분류
- 클라우드 컴퓨팅 유형
- 인프라형 서비스(IaaS; infrastructure as a Service)
- 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
- 플랫폼형 서비스(PaaS;Platform as a Service )
- 인프라를 생성, 관리 하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
- 소프트웨어형 서비스(SaaS; Software as a Service)
- 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스
- 주문형 소프트웨어라고도 함
- 인프라형 서비스(IaaS; infrastructure as a Service)
728x90
반응형
'자격증 > 정보처리기사' 카테고리의 다른 글
[ XI ] 응용SW 기초 기술 활용 - 네트워크 기초 활용하기 (0) | 2023.07.21 |
---|---|
[ X ] 애플리케이션 테스트 관리 - 애플리케이션 성능 개선 (0) | 2023.07.21 |
[ X ] 애플리케이션 테스트 관리 - 애플리케이션 테스트 케이스 설계 (0) | 2023.07.20 |
[ IX ] 소프트웨어 개발 보안 구축 - 소프트웨어 개발 보안 설계 (0) | 2023.07.19 |
[ VII ] SQL 응용 - 데이터베이스 기본 (0) | 2023.07.15 |