1. 운영체제 종류
- 운영체제 : 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어
- 운영체제 특징 : 사용자 편리성 제공, 인터페이스 기능을 담당, 스케줄링 담당, 자원 관리, 제어 기능
- 커널과 쉘(인터페이스)
- 커널 : 운영체제의 핵심적인 기능들이 모인 컴퓨터 프로그램. 프로세스/기억장치/주변장치/파일 관리
- 쉘 : 명령어 라인을 읽어 필요한 시스템 기능을 실행시키는 명령어 해석기
- 운영체제 종류
- 윈도우 : MS-DOS의 멀티태스킹 기능과 GUI 환경을 제공하는 마이크로소프트사가 개발한 운영체제
- GUI 제공 : 마우스로 작업을 수행하는 그래픽 기반 인터페이스 방식
- 선점형 멀티태스킹 방식 : 동시에 여러 프로그램을 실행하며 운영체제가 각 CPU 이용 시간을 제어
- 자동감지 기능 제공 : 하드웨어 설치 시 필요한 환경을 운영체제가 구성
- OLE 사용 : 개체를 현재 작성 중인 문서에 자유롭게 연결하여 편집 가능
- 유닉스 : 90% 이상 C언어로 구현되어 있는 운영체제로 범용 다중 사용자 방식의 시분할 운영체제
- 대화식 운영체제 기능 제공 : 프롬프트에 사용자가 명령을 입력하는 대화식 운영체제 기능 제공
- 다중 작업 기능 제공 : 다수의 작업이 공용자원을 나누어 사용하여 하나 이상의 작업을 수행
- 다중 사용자 기능 제공 : 여러 단말이 하나의 컴퓨터에 연결되어 여러 사람이 동시에 시스템 사용 가능
- 이식성 제공 : 다른 하드웨어 기종으로 쉽게 이식 가능
- 계층적 트리 구조 파일 시스템 제공 : 계층적 트리 구조를 가져 통합적인 파일 관리 용이
- 유닉스 계열 운영체제
- 리눅스 : 소스 코드가 공개된 오픈 소스 기반의 운영체제
- 맥 : 애플이 개발한 GUI 기반의 운영체제
- 안드로이드 : 휴대용 장치를 위한 운영체제. 자바와 코틀린 언어 사용, 런타임 라이브러리, SDK 제공
- 윈도우 : MS-DOS의 멀티태스킹 기능과 GUI 환경을 제공하는 마이크로소프트사가 개발한 운영체제
- 운영체제 발달 과정
- 일괄 처리 시스템 : 하나의 작업이 끝나기 전까지 다른 작업이 불가능
- 시분할 시스템 : 여러 사용자의 프로그램을 번갈아가면서 처리
- 다중 처리 시스템 : 하나의 컴퓨터에 여러 CPU를 이용하여 병렬로 처리
- 범용 시스템 : 메모리에 적재되어 실행되는 프로그램에 따라 여러 가지 용도로 사용하는 시스템
- 분산 처리 시스템 : 다른 장소에 위치한 컴퓨터 시스템에 기능과 자원을 분산시켜 상호 협력할 수 있는 시스템
2. 운영체제 기본 명령어 활용
- 운영체제 제어
- CLI : 사용자가 직접 명령어를 입력, 컴퓨터에 명령을 내리는 방식
- GUI : 마우스로 화면을 클릭하여 그래픽 위주로 컴퓨터를 제어하는 방식
- 윈도우 운영체제 기본 면령어
- Help : 명령어 검색
- ATTRIB : 파일 속성을 표시하거나 바꿈
- CALL : 한 일괄 프로그램에서 다른 일괄 프로그램을 호출
- CD : 현재 디렉터리 이름을 보여주거나 바꿈
- CHKDSK : 디스크를 검사하고 상태 보고서를 표시
- CLS : 화면을 지움
- CMD : Windows 명령 프롬프트 창을 열어ㅈㅁ
- COMP : 두 개 이상의 파일을 비교
- DISKPART : 디스크 파이션 속성을 표시하거나 구성
- ECHO : 메시지를 표시하거나 ECHO를 사용 또는 사용하지 않음
- ERASE : 하나 이상의 파일을 지움
- EXIT : CMD.EXE 프로그램을 마침
- 리눅스/유닉스 계열 기본 명령어
- --help, -h : 명령어 확인
- uname-a : 시스템의 모든 정보 확인
- uname-r : 운영체제의 배포버전 출력
- cat : 파일의 내용을 화면에 출력
- uptime : 시스템의 가동 시간과 현재 사용자 수, 평균 부하량 등을 확인
- id : 사용자의 로그인명, id, 그룹 id 등을 출력
- last : 시스템 부팅부터 현재까지의 모든 사용자의 로그인과 로그아웃에 대한 정보 표시
- who : 현재 접속 사용자 정보 표시
- ls : 자신이 속해있는 폴더 내에서의 파일 및 폴더들을 표시
- pwd : 현재 작업 주인 디렉토리의 절대 경로 출력
- rm : 파일 삭제
- cp : 파일 복사
- mv : 파일 이동
- ps : 현재 실행되고 있는 프로세스 목록 출력
- pamp : 프로세스 ID를 기준으로 메모리 맵 정보를 출력
- kill : 특정 PID 프로세스 종료 명령어
- chmod : 특정 파일 또는 디렉토리의 퍼미션 수정
- chown : 파일이나 디렉토리의 소유자, 소유 그룹 수정
- ifconfig : 네트워크 인터페이스를 설정하거나 확인
- host : 도메인은 알지만 ip 주소를 모르거나, 반대인 경우에 사용
- tar : 여러 파일을 하나의 파일로 묶거나 풀 때 사용
- gzip : 파일을 묶거나 풀 수는 없지만 압축을 담당
- grep : 입력으로 전달된 파일의 내용에서 특정 문자열을 찾을 때 사용
- find : 특정 파일을 찾음
- cp : 디렉토리 복사
- rsync : 로컬 또는 원격에 파일과 디렉터리 복사 및 동기화
- df : 시스템에 마운트된 하드디스크의 남은 용량을 확인할 때 사용
- du : 파일 사이즈를 칼로 바이트 단위로 보여줌
- cd : 디렉토리 이동
- 리눅스/유닉스 운영체제의 파일 접근 권한 관리
- 파일 접근 제어 개요 : open(), read() write()와 같은 시스템 호출이 수행되고, 각 파일의 정보가 저장된 i-node 값을 읽음
- 파일 접근 제어 방법
- 접근 권한 유형
- User : 파일을 소유하고 있는 사용자
- Group : 소유자를 제외하고 파일과 같은 그룹에 속해있는 모든 사용자 모임
- Other : 그 밖의 사용자
- 파일 접근 모드 : Read(4), Write(2), eXcute(1)
- 접근 권한 유형
- 접근 권한 변경
- chmod 명령어를 이용해 접근 권한 변경
- 기호 기술 : +(추가), -(제거), =(지정)
- 숫자 기술(8진수) : r(4), w(2), x(1)
3. 운영체제 핵심 기능 파악
- 메모리 관리 : 한정된 메모리 공간을 효율적으로 사용하기 위해 주기억장치에 적재시키는 시기, 위치 등을 지정하여 관리
- 메모리 관리 기법
- 반입 기법 : 주기억장치에 적재할 다음 프로세스의 반입 시기 결정
- 요구 반입 기법, 예상 반입 기법
- 배치 기법 : 디스트에 있는 프로세스를 주기억 장치의 어느 위치에 저장할 것인지 결정
- 최초 적합 : 프로세스가 적재될 수 있는 첫 번째 분할에 할당
- 최적 적합 : 가장 크기가 비슷한 공간을 선택
- 최악 적합 : 가장 큰 공간에 할당
- 할당 기법 : 실행해야 할 프로세스를 어떤 방법으로 주기억장치에 할당할 것인지 결정
- 연속 할당 기법 : 주기억장치에 연속으로 할당
- 단일 분할 할당 기법, 다중 분할 할당 기법
- 분산 할당 기법 : 주로 가상 기억 장치에서, 프로세스를 여러 조각으로 나누어 배치
- 페이징 기법 : 프로세스를 일정하게 분할하여 적재
- 세그먼테이션 기법 : 프로세스를 가변적인 크기의 블록으로 나누고 메모리 할당
- 페이징/세그먼테이션 혼용기법 : 외부 단편화 및 내부 단편화 최소화를 위해 결합
- 연속 할당 기법 : 주기억장치에 연속으로 할당
- 교체 기법 : 제거할 프로세스를 결정하는 기법
- FIFO : 먼저 들어온 페이지부터 교체
- LRU : 가장 오랫동안 사용되지 않은 페이지를 교체
- LFU : 참조 횟수가 가장 적은 페이지를 교체
- OPT : 가장 오랫동안 사용하지 않을 페이지를 교체
- NUR : 최근에 사용하지 않은 페이지를 교체
- SCR : FIFO 기법의 단점을 보완한 기법
- 반입 기법 : 주기억장치에 적재할 다음 프로세스의 반입 시기 결정
- 메모리 단편화 : 프로세스 할당, 반납 과정에서 낭비되는 기억장치가 발생하는 현상
- 내부 단편화 : 페이징 기법 사용 시 프로세스를 적재한 후 남은 공간
- 내부 단편화 해결 방안
- 슬랩 할당자 : 공간을 작은 크기로 분할하고 메모리를 할당해제하는 동적 메모리 관리 기법
- 통합 : 인접한 단편화 영역을 하나로 통합
- 압축 : 메모리의 모든 단편화 영역을 하나로 압축
- 외부 단편화 : 세그멘테이션 기법 사용 시 할당된 크기가 프로세스 크기보다 작아서 사용하지 못하는 공간
- 외부 단편화 해결 방안
- 버디 메모리 할당 : 메모리를 2^n 크기로 분할하여 메모리를 할당하는 기법
- 통합 : 인접한 단편화 영역을 하나로 통합
- 압축 : 메모리의 모든 단편화 영역을 하나로 압축
- 페이징 기법의 문제점 - 스레싱 : 페이지 부재가 발생하여 프로세스릐 실제처리 시간 보다 페이지 교체 시간이 더 많아지는 현상
- 페이징 기법의 문제점의 해결방안
- 워킹 세트 : 각 프로세스가 많이 참조하는 페이지들의 집합을 주기억장치 공간에 계속 상주하게 하는 방법
- 장점 : 멀티프로그래밍 정도를 높일 수 있고, CPU 활용률을 최적화 가능
- 단점 : 워킹 세트 추적관리가 복잡하고, 워킹 세트 크기 설정의 모호함이 발생
- 페이지 부재 빈도 : 페이지 부재율의 상한과 하한을 정해서 페이지 부재율을 예측하고 조절
- 장점 : 부하가적고, 직접적으로 페이지 부재율 조절이 가능
- 단점 : 프로세스 중지 과정이 발생하고, 페이지 참조가 새로운 지역성으로 이동 가능
- 워킹 세트 : 각 프로세스가 많이 참조하는 페이지들의 집합을 주기억장치 공간에 계속 상주하게 하는 방법
- 지역성 : 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 특성
- 시간 지역성 : 참조했던 메모리는 빠른 시간에 다시 참조될 확률이 높음
- 공간 지역성 : 참조된 메모리 근처의 메모리를 참조하는 특성
- 순차 지역성 : 데이터가 순차적으로 액세스 되는 현상
- 프로세스 : CPU에 의해 처리되는 프로그램
- 프로세스 상태
- 생성(Create) : 사용자에 의해 프로세스 생성
- 준비(Ready) : CPU를 할당받을 수 있는 상태
- 실행(Running) : 프로세스가 CPU를 할당받아 동작중인 상태
- 대기(Waiting) : 프로세스 실행 중 입출력 처리 등으로 인해 CPU를 양도하고 대기 리스트에서 기다리는 상태
- 완료(Complete) : CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태
- 프로세스 상태 전이
- Diespatch : CPU를 할당 받아 준비 상태에서 실행 상태로 전이
- Timer Run Out : 프로세스는 지정된 시간이 초과되면 스케줄러에 의해 PCB를 저장, CPU 반납 후 다시 준비 상태로 전이
- Block : 프로세스가 기타 사건이 발생하면 CPU를 스스로 반납하고 대기 상태로 전이
- Wake-Up : 입출력이 종료되면 대기 상태의 흐로세스에게 입출력 종료 사실을 알리고 준비 상태로 전이
- 프로세스 스케줄링 : CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업
- 프로세스 스케줄링 주요 용어
- 서비스 시간 : 프로세스가 결과를 산출하기까지 소요되는 시간
- 응답시간 : 프로세스들이 입력되어 서비스를 요청하고, 반응하기 시작할 때까지 소요되는 시간
- 반환시간 : 대기시간 + 수행시간
- 대기시간 : 프로세스가 할당되기까지 큐에 대기하는 시간
- 평균 대기 시간 : 준비 큐에서 대기하는 평균 시간
- 종료 시간 : 프로세스가 요구하는 서비스 시간을 모두 수행하고 종료된 시간
- 시간 할당량 : 한 프로세스가 프로세스를 독점하는 것을 방지하기 위해 서비스되는 시간 할당량
- 응답률 : HRN 스케줄링에서 사용. (대기시간+서비스 시간)/서비스 시간
- 프로세스 스케줄링 유형
- 선점형 스케줄링 : 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유
- SRT : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행
- MLQ(다단계 큐) : 작업을 여러 그룹으로 분할하고, 각 독자적인 스케줄링을 가능 큐를 이용
- MLFQ(다단계 피드백 큐) : FCFS와 라운드 로빈 스케줄링 기법을 혼합
- RR(라운드 로빈) : 모든 프로세스에 대해 같은 크기의 CPU 시간을 할당하고, 처리하지 못하면 준비 큐 리스트 뒤에 전달
- 비선점형 스케줄링 : 한 프로세스가 CPU를 할당받으면 반환 시까지 다른 프로세스가 점유 불가능
- Priority : 프로세스 별로 우선순위가 주어짐
- Deadline : 요청에 명시된 시간 내 처리를 보장하느 기법
- HRN : 현재 응답률이 가장 높은 것을 선택
- FCFS : 준비 큐에 도착한 순서에 따라 CPU 할당
- SJF : 프로세스 도착 시 가장 작은 서비스 시간을 갖는 프로세스 선택
- 선점형 스케줄링 : 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유
- 프로세스 관리 - 교착상태 : 두 개 이상의 프로세스가 특정 자원할당을 무한정 대기
- 교착상태 발생 조건
- 상호 배제(Mutual Exclusive) : 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 자원을 사용할 수 없는 상태
- 점유와 대기(Hold&Wait) : 한 프로세스가 자원을 점유하며 또 다른 자원을 요청하여 대기
- 비선점(Non Preemption) : 프로세스가 자원을 점유하고 있는 동안 다른 프로세스가 그 자원을 강제로 빼앗을 수 없음
- 환형 대기(Circular Wait) : 두 개 이상의 프로세스 간 자원의 점유와 대기가 하나의 원형을 구성
- 교착상태 해결 방법
- 예방 : 교착상태 발생 조건 중 하나를 충족하지 못하게 함.
- 회피 : 안전한 상태를 유지할 수 있는 요구만 수락(은행가 알고리즘)
- 발견 : 시스템의 상태를 감시 알고리즘을 통해 검사
- 복구 : 교착상태가 없어질 때까지 프로세스를 순차적으로 강제 종료
- 디스크 스케줄링 : 데이터를 액세스하기 위해 디스크 헤드를 움직이는 경로를 결정
- 디스크 스케줄링 종류
- FCFS : 디스크 큐에 가장 먼저 들어온 트랙에 대한 요청을 먼저 처리
- SSTF : 탐색거리가 가장 짧은 트랙에 대한 요청을 먼저 처리
- SCAN : 진행 방향이 결정되면 탐색 거리가 짧은 순서에 따라 그 방향의 모든 요청으로 서비스
- C-SCAN : 항상 바깥쪽에서 안쪽으로 움직이며, 가장 짧은 탐색 서리를 갖는 요청을 서비스
- LOOK : SCAN을 기초로 사용하며, 해당 방향으로 더 이상의 요청이 없으면 역방향으로 진행
- N-STEP SCAN : SCAN을 기초로 사용하며, 장향의 진행이 시작될 당시 대기중이던 요청들만 서비스
- SLTF : 회전지연시간이 가장 짧은 요청부터 서비스
# 회고
안드로이드가 유닉스 기반 운영체제인 줄 몰랐다.
SDK도 제공해서 함 만들어보고 싶다.
'개인 스터디 > 정리' 카테고리의 다른 글
[정보처리기사 실기] 26. 기본 개발환경 구축~27. 제품 소프트웨어 패키징 (3) | 2025.06.05 |
---|---|
[정보처리기사 실기] 25. 네트워크 기초 활용하기 (0) | 2025.05.30 |
[정보처리기사 실기] 22. 애플리케이션 통합 테스트~23. 애플리케이션 성능 개선 (0) | 2025.05.21 |
[정보처리기사 실기] 21. 애플리케이션 테스트 케이스 설계 (0) | 2025.05.19 |
[정보처리기사 실기] 20. 소프트웨어 개발 보안 구현 (0) | 2025.05.17 |