ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 11-1. 운영체제의 특징
    공부 일기/정보처리기사 실기 2024. 7. 22. 23:55
    728x90

    1-1. 요구사항 분석 https://minjh1126.tistory.com/44

    1-2. 현행시스템 분석 https://minjh1126.tistory.com/45

    1-3. 요구사항 확인 https://minjh1126.tistory.com/46

    2-1. UI 요구사항 확인 https://minjh1126.tistory.com/47

    2-2. UI 설계 https://minjh1126.tistory.com/48

    3-1. 논리 데이터 저장소 확인 https://minjh1126.tistory.com/54

    3-2. 물리데이터 저장소 설계 ~ 3.3 데이터베이스 기초 활용 https://minjh1126.tistory.com/57

    4. 통합구현 https://minjh1126.tistory.com/58

    5. 인터페이스 구현 https://minjh1126.tistory.com/59

    6. 프로그래밍 언어 https://minjh1126.tistory.com/60

    7-1. 데이터베이스 기본 https://minjh1126.tistory.com/49

    7-2. 응용 SQL 작성하기 https://minjh1126.tistory.com/50

    8-1. 개발환경 구축 https://minjh1126.tistory.com/51

    8-2. 공통 모듈 구현 https://minjh1126.tistory.com/52

    9-1. 소프트웨어 개발 보안 설계 https://minjh1126.tistory.com/53

    9-2. 소프트웨어 보안 개발 구현 https://minjh1126.tistory.com/55

    10-1. 애플리케이션 테스트 케이스 설계 https://minjh1126.tistory.com/56

    10-2. 애플리케이션 통합 테스트 https://minjh1126.tistory.com/61

     

    1. 운영체제 종류

    1. 운영체제 종류

    • 운영체제(OS): 사용자가 하드웨어를 쉽게 사용할 수 있도록 컴퓨터와 시스템 사이의 인터페이스 역할을 함. 한정된 시스템 자원을 효과적으로 사용할 수 있게 관리 운영. 
    • 특징: 사용자 편리성, 인터페이스 기능 담당, 스케줄링 담당, 자원 관리, 제어 기능
    • 구조: 운영체제 = 인터페이스(쉘) + 커널 구조. 운영 체제의 핵심 기능은 커널에 모여있고 인터페이스를 통해 사용자가 쉽게 사용할 수 있도록 함. 
      • 쉘: 사용자가 입력한 명령어를 읽어 필요한 기능을 실행시키는 명령어 해석기. 시스템과 사용자가 인터페이스를 제공하고 내장 명령어가 있음.
      • 커널: 운영체제의 핵심 기능들이 모여있음. 컴퓨터가 부팅될 때 주기억 장치에 적재된 후 상주하면서 실행되고, 프로그램과 하드웨어 간 인터페이스 역할.
        • 기능
          • 프로세스 관리: 프로세스 스케줄링, 동기화, 생성 및 제거, 시작과 정지, 메세지 전달 등.
          • 기억장치 관리: 프로세스에게 메모리 할당 및 회수.
          • 주변장치 관리: 입출력 장치 스케줄링 및 전반적 관리.
          • 파일 관리: 파일의 생성, 삭세, 변경, 유지 등 관리.
    • 종류
      • 윈도우: MS-DOS의 멀티태스킹 능력과 GUI환경을 제공하는 마이크로소프트의 OS. 
        • 특징
          • GUI제공
          • 선점형 멀티태스킹 방식 제공: 동시에 여러 프로그램을 실행하며 각 작업의 CPU 이용 시간을 제어
          • 자동 감지 기능 제공: 하드웨어 설치시 필요한 환경을 자동으로 구성함
          • OLE: 개체를 작정 중인 문서에 삽입 또는 편집 가능
      • 유닉스: 90%이상이 C언어로 구현된 다중 사용자 방식의 시분할 운영체제. 다양한 시스템에 서로 인식할 수 있음.
        • 특징
          • 대화식 운영체제 기능 제공: 프롬포트가 나타났을 때 명령어를 입력하면 그 명령을 수행하는 사용자 명령 기반으 대화식 운영체제.
          • 다중 작업 기능 제공: 다수의 작업(프로세스)이 중앙처리장치 같은 공용 자원을 나누어 사용하며 한 번에 하나 이상을 작업.
          • 다중 사용자 기능: 여러대의 단말이 하나의 컴퓨터에 연결되어, 여러 사람이 시스템을 동시에 사용해 각각 작업을 수행할 수 있음.
          • 이식성 제공: 시스템 프로그램이 모듈화 되어있어 다른 하드웨어로 쉽게 이식 가능.
          • 계층적 트리 구조 파일 시스템 제공: 계층형 트리 구조로 통합적 파일 관리가 용이.
      • 리눅스: 유닉스를 기반으로 개발된 오픈 소스 운영체제. 데비안, 레드헷 등 다양하게 출시되고 있으며 유닉스 계열의 운영체제임으로 같은 특징을 가짐.
      • 맥: 애플이 유닉스를 기반으로 개빌한 GUI 기반 운영체제.
      • 안드로이드 운영체제: 휴대용 장치를 위한 운영체제, 미들웨어, 사용자 인터페이스, 표준 응용 프로그램(웹 브라우저, 메일 등)을 포함한 운영체제.
        • 특징: 리눅스 기반, 자바와 코틀린 언어(고수준 언어로 작성해 생산성이 높고 쉽게 개발 가능), 런타임 라이브러리(컴파일된 바이트 코드 구동 가능), 안드로이드 소프트웨어 개발 키트(SDK, 응용 프로그램을 개발하는데 필요한 도구 제공)

     

    2. 운영체제 기본 명령어 활용

    1. 명령어

    • 윈도우 명령어: 명령창을 띄운 후 실행. CLI 방식.
      • ATTRIB: 파일 속성 표시, 변경.
      • CALL: 한 일괄 프로그램에서 다른 일괄 프로그램 호출.
      • CD: 현 디렉토리 이름을 보여주거나 변경.
      • CHKDSK: 디스크 검사 후 상태 보고서 표시.
      • CLS: 화면을 지움.
      • CMD: 명령 프롬포트 창을 띄움.
      • COMP: 두 파일 배교.
      • DISKPART: 디스크 파티션 속성을 표시하거나 구성.
      • ECHO: 메세지를 표시하거나 ECHO 사용 여부.
      • ERASE: 하나 이상의 파일 삭제.
      • EXIT: CMD를 마침.
    • 리눅스/유닉스: CLI환경에서 최상위 유저를 #로, 일반 유저를 $로 표시.
      • 시스템 관련
        • uname -a: 시스템의 모든 정보 확인. 시스템 이름, 사용 중인 OS와 버전, 호스트명 등.
        • uname -f: 운영체제의 배포 버전 출력.
        • cat: 파일의 내용을 화면에 출력.
        • uptime: 시스템 가동 시간, 현재 사용자 수, 평균 부하량 등 확인.
      • 사용자
        • id: 사용자의 로그인 명, id, 그룹 id 출력.
        • last: 시스템의 부팅부터 현재까지 모든 사용자의 로그인/로그아웃 정보 표시.
        • who: 현재 접속 사용자 정보 표시.
      • 파일 처리
        • ls: 폴더 내의 파일 및 폴더 표시.
        • pwd: 현재 작업 중인 디렉토리의 절대 경로 출력.
        • rm/cp/mv: 파일 삭제/복사/이동.
      • 프로세스
        • ps: 실행 중인 프로세스 목록 출력.
        • pmap: 프로세스 id를 기준으로 메모리 맵 정보 출력.
        • kill: 특정 PID 프로세스 종료.
      • 파일 권한
        • chmod: 파일이나 디렉토리 퍼미션 수정 명령어.
        • chown: 파일이나 디렉토리의 소유자, 소유 그룹 확인.
      • 네트워크
        • ifconfig: 네트워크 인터페이스 설정 및 확인 명령어.
        • host: 도메인명은 알고 있는데 ip주소를 모르거나, ip주소를 알지만 도메인을 모를 때 사용.
      • 압축
        • tar: 여러 파일을 하나로 묶거나 풀 때 사용.
        • gzip: 파일을 묶거나 풀 수 없지만 압축에 사용.
      • 검색
        • grep: 입력을 전달된 파일의 내용에서 특정 문자열 검색.
        • find: 특정 파일 검색.
      • 파일 이동
        • cp:디렉토리 복사.
        • rsync: 로컬 또는 원격에 파일과 디렉토리를 복사하고 동기화.
      • 디스크 사용
        • df: 시스템에 마운트된 하드디스크의 남은 용량을 확인.
        • du: 파일 사이즈를 킬로 바이트 단위로 보여줌.
      • 디렉토리 이동
        • cd: 디렉토리 이동.
    • 리눅스/유닉스 파일 점근 권한 관리: 파일을 읽거나 실행하면 open, read, write 등의 함수가 호출되고 파일의 정보가 저장된 i-node 값을 읽게됨. i-node에는 위치, 날짜 등의 정보와 파일 접근 제어 관련 정보가 수록되며 DAC 기반 접근제어 수행.
      • 접근 권한 유형: User(파일 소유), Group(User을 제외하고 파일과 같은 그룹에 속해있는 사용자 모임), Other(그 외)
      • 접근 모드: R(read), W(write), X(execute, 실행) - 8진수로 표현
    •  
    // 접근 권한 명령어
    chmod -R 권한 대상
    
    // 대상: u(user), g(group), o(other), a(all)
    // 연산자: +(추가), -(제거), =(지정)
    // 접근 권한: r, w, x
    
    chmod go-w g -> g의 group, other에 쓰기 권한 제거
    chmod g+w, o-x g -> g의 group에 쓰기 권한을 추가하고 other의 실행 권한 삭제
    
    // 8진수 표현 -> (user, group, other) 순으로 (r, w, x) 의 권한을 8진수 숫자 하나로 표현
    chmod 777 g -> g의 user, group, other 모두에게 r, w, x 권한 부여
    chmod 660 g -> g의 user, group에게 r, w 권한을 주고 other에게는 아무 권한도 부여하지 않음
    chmod 704 g -> g의 user에게는 r, w, x 권한을 주고, group에게는 아무 권한도 주지 않고, other에게는 w, x 권한 부여

     

    3. 운영체제 핵심 기능 파악

    1. 운영체제 핵심 기능

    • 메모리 관리: 프로그램의 실행이 종료될 때까지 메모리를 가용한 상태로 유지 및 관리. 실행 중 메모리가 꽉 차면 속도가 느려지고 시스템이 멈추기도 함. 메모리의 프로그램은 CPU로 이동해 처리. CPU는 가상 주소를 사용하는데 메모리는 물리 주소를 사용해 MMU에서 매핑이 일어남.
      • 관리 기법
        • 반입 기법: 메모리로 적재 시기 결정 - 요구 반입 기법, 예상 반입 기법
        • 배치 기법: 메모리 적재 위치 결정 - 최초 적합(첫 가용 공간), 최적 적합(가용 공간 중 가장 비슷한 크기), 최악 적합(가용 공간 중 가장 큰 곳)
        • 할당 기법: 메모리 적재 방법 결정
          • 연속 할당 기법: 실행을 위한 각 프로세스를 주기억장치 공간 내에서 인접되게 연속해 저장
            • 단일 분할 할당: 오버레이, 스와핑
            • 다중 분할 할당: 고정 분할 할당 기법, 동적 분할 할당 기법
          • 분산 할당 기법: 하나의 프로세스를 여러 조각으로 나눠 주 기억장치 내에 분산 배치. 주로 가상기억장치에서 사용됨
            • 페이징 기법: 가상 기억 장치 내의 프로세스를 일정하게 분할해 주기억 장치의 분산된 공간에 적재시킨 후 프로세스 수행.
              • 스레싱: 어떤 프로세스가 계속적으로 페이지 부재가 발생해 프로세스의 실제 처리 시간보다 페이지 교체 시간이 더 큼. 오류율이 클수록 스레싱이 많이 발생된 것이고, 성능 및 처리율이 저하됨. 기억장치 접근 시간이 증가함
              • 워킹 세트: 스레싱의 해결 방안. 각 프로세스가 많이 참조하는 페이지들의 집합을 주기억 공간에 계속 상주하게 해 빈번한 페이지 교체 현상을 줄이고자 하는 기법.
                • 장단점: 멀티 프로그래밍 정도를 높일 수 있고 CPU 활용률을 최적화할 수 있음. 하지만 워킹 세트 추적관리가 복잡하고 워킹 세트 크기 설정의 모호함 발생.
              • 페이지 부재 빈도: 스레싱 해결 방안. 페이지 부재율의 상한과 하한을 정해 부재율을 예측하고 조절. 부재 비율에 따라 페이지 프레음 개수 조절.
                • 장단점: 페이지 발생 시 실행해 부하가 적고 직접적으로 페이지 부재율 조절이 가능. 프로세스를 중지시키는 과정이 필요하고 페이지 참조가 새로운 지역성으로 이동 가능.
            • 세그먼테이션 기법: 가상 기억 장치 내의 포르세스를 가변적인 크기의 블록으로 나누고 메모리 할당. 분할 형태가 배열이나 함수 같은 논리적인 가변적인 크기로 관리.
            • 페이징/세그먼테이션 혼용 기법: 외부 단편화 및 내부 단편화 최소화를 위해 생성됨.
        • 교체 기법: 메모리 교체 대상 
          • FIFO: 가장 오래 있던 페이지 교체.
          • LRU: 사용된 시간을 확인해 가장 오랫도록 사용되지 않은 페이지 선택. 프로그램의 지역성 원리에 따라 참조된 페이지는 다시 참조될 가능성이 크고, 참조되지 않은 페이지는 앞으로도 참조되지 않을 가능성이 큼.
          • LFU: 사용된 횟수를 확인해 참조 횟수가 가장 적은 페이지 교체. 
          • OPT: 앞으로 가장 오랫동안 사용하지 않을 페이지 교체. 페이지 부재 횟수가 가장 적게 발생하는 효율적인 알고리즘.
          • NUR: LRU와 비슷한 알고리즘으로 최근에 사용하지 않은 페이지를 교체. LRU의 시간적 오버헤드를 줄일 수 있음. 최근 사용 여부를 확인하기 위해 페이지마다 참조 비트와 변형 비트 사용.
          • SCR: 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지. FIFO의 단점 보완.
        • 메모리 단편화: 분활된 주기억장치에 프로세스 할당, 반납 과정에서의 낭비되는 기억장치 발생 현상.
          • 내부 단편화: 분할된 공간에 프로세스를 적재한 후 남은 공간. 고정 분할 할당, 페이징 기법 시 발생 - Stab Allocator, 통합, 압축 으로 해결 가능
          • 외부 단편화: 할당된 크기가 프로세스 크기보다 작아 사용되지 못하는 공간. 가변 분할 할당 방식, 세그먼테이션 기법 시 발생 - 버디 메모리 할당, 통합, 압축으로 해결 가능.
        • 지역성(국부성, 구역성, 국소성): 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조. 프로세스가 집중적으로 사용하는 페이지를 알아내는 방법 중 하나로 가상기억장치 관리와 스레싱 방지를 위한 워킹 셋 이론의 기반이 됨. 
          • 시간 지역성: 최근 사용된 기억장소들이 집중적으로 액세스한 현상. 참조했던 메모리는 빠른 시간에 다시 참조될 확률이 높은 특성 사용 - Loop, 스택, 부프로그램, 카운팅, 집계에 사용된 변수
          • 공간 지역성: 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스한 현상. 참조된 메모리 근처의 메모리를 참조하는 특성 - 배열 순회, 프로그래머들이 관련된 변수를 근처에 선언해 할당되는 기억 장소, 같은 영역의 변수 참조
          • 순차 지역성: 데이터가 순차적으로 액세스. 프로그램 내의 명령어가 순차적으로 구성됨 - 순차적 코드 실행
    • 프로세스 관리: 일시 중지 및 재실행, 동기화, 통신, 교착상태 처리, 프로세스 생성 삭제.
      • 프로세스 상태
        • 생성: 사용자에 의해 생성됨.
        • 준비: CPU를 할당 받을 수 있는 상태. 준비 리스트는 준비된 프로세스에 각각 우선순위를 부여해 가장 높은 우선 순위를 받은 프로세스가 다음 순서에 CPU를 할당 받음.
        • 실행: 프로세스가 CPU를 할당 받아 실행 중.
        • 대기: 프로세스 실행 중 CPU를 양도하고 완료까지 대기 리스트에서 기다림. 대기 리스트에는 우선 순위가 없음.
        • 완료: 프로세스가 CPU를 할당 받아 주어진 시간 내에 완전히 종료됨.
      • 프로세스 상태 전이: 하나의 작업이 입력되어 완료되기까지 프로세스의 상태가 준비, 실행, 대기 상태로 변함.
        • 디스패치: 준비 상태에 있는 여러 프로세스 중 실행된 프로세스를 선정 = 문맥 교환 발생. 프로세스 준비 → 실행
        • 타이머 런 아웃(할당시간 초과): CPU를 할당 받은 프로세스는 시간이 초과되면 스케줄러에 의해 PCB에 저장, CPU 반납 후 준비 상태로 전이. 타임 슬라이스, 선점 시 타임아웃 발생. 프로세스 실행 → 준비
        • 블록(입출력 발생): 입출력 등의 사건이 발생하면 CPU를 스스로 반납하고 사건이 완료될 때까지 대기 상태로 전이. 프로세스 실행 → 대기
        • 웨이크 업: 사건이 종료되면 대기 상태의 프로세스에게 종료 사실을 wait & signal 등으로 알려줌. 프로세스 대기 → 준비 
      • 프로세스 스케줄링: CPU를 사용하려 하는 프로세스들 사이의 우선 순위 관리. 처리율과 CPU를 증가시키고 오버헤드, 응답시간, 반환시간, 대기시간을 최소화함.
        • 주요 용어
          • 서비스 시간: 프로세스가 결과를 산출하기까지의 시간.
          • 응답 시간: 프로세스들이 입력되어 서비스를 요청하고, 반응하기 시작할 때까지의 시간.
          • 반환 시간: 프로세스들이 입력되어 수행하고 결과를 산출하기까지의 시간. 반환 시간 = 종료 시간 - 도착 시간.
          • 대기 시간:  프로세스가 프로세서에 할당되기까지 큐에 대기하는 시간. 프로세스가 도착하자마자 프로세서에 할당되면 0. 대기 시간 = 반환 시간 - 서비스 시간
          • 평균 대기 시간: 프로세스가 대기 큐에서 대기하는 평균 시간.
          • 종료 시간: 요구되는 프로세스 타임을 모두 수행하고 종료된 시간.
          • 시간 할당량: 한 프로세스가 프로세서를 독점하는 것을 방지하기 위해 서비스되는 시간 할당량.
          • 응답률: HRN에서 사용됨. (대기 시간 + 서비스 시간) / 서비스 시간.
        • 유형
          • 선점형 스케줄링: 하나의 프로세스가 CPU를 차지하고 있을 떄 우선순위가 높은 다른 프로세스가 현 프로세스를 중단시키고 CPU 점유. 응답이 빠르고 대화식 시분할 시스템에 적합하지만 높은 우선순위 프로세스들이 들어오면 오버헤드 발생. 실시간 응답 환경, Deadline 응답 환경에서 활용.
            • 라운드 로빈(RR): 프로세스는 같은 크기의 CPU 시간을 할당 받고, 주어진 시간 내에 처리를 못 했을 때에는 큐 리스트의 가장 뒤로 보내짐. 균등한 CPU 점유시간을 가지고 시분할 시스템을 이용한 것이 특징.
            • SRT(Shortest Remaining Time First): 가장 짧은 시간이 소요되는 프로세스를 먼저 수행, 남은 처리 시간이 더 짧다고 판단되는 프로세스가 생기변 먼저 선점됨. 
            • 다단계 큐(MLQ, Multi Level Queue): 작업들을 여러 종류의 그룹으로 분할, 여러 큐를 이용해 상위 단계 작업에 의한 하위단계 작업이 선점 당함. 각 큐는 자신만의 독자적인 스케줄링을 가짐. 
            • 다단계 피드백 큐(Multi Level Feedback Queue): FIFO와 라운드로빈 스케줄링 기법을 혼합. 새로운 프로세스는 높은 우선 순위를 갖고 프로세스의 실행시간이 길어질수록 점점 낮은 우선순위 큐로 이동하고 마지막에는 라운드 로빈을 적용. 입출력 위주와 CPU 위주인 프로세스의 특성에 따라 큐마다 서로 다른 CPU 시간 할당.
          • 비선점형 스케줄링: 한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 반환까지 다른 프로세스는 사용 불가. 응답 시간 예상이 용이하고 모든 프로세스의 요구를 공정하게 처리하지만 짧은 작업의 프로세스가 긴 작업 종료 시까지 대기해야함. 처리 시간 편차가 적은 프로세스 환경에서 활용.
            • 우선순위(Priority): 프로세스 별로 우선순위가 주어지고 그에 따라 CPU를 할당 받음. 동일 순위는 FIFO. 주요/긴급 프로세스는 우선 처리되고 설정, 자원 상황 등에 따라 우선순위가 선정됨.
            • 기한부(Deadline): 작업이 명시된 시간이나 기한 내에 완료되도록 계획. 요청에 명시된 시간 내 처리를 보장.
            • FCFS(First Come First Service, FIFO): 도착한 순서에 따라 CPU 할당.
            • SJF(Shortest Job First): 프로세스가 도착하는 시점에 따라 가장 작은 서비스 시간을 갖는 프로세스가 점유. 가장 짧은 작업부터 수행해 평균 대기 시간 최소화. CPU 불평등이 심해 긴 프로세스는 기아 현상 발생.
            • HRN: 대기 중인 프로세스 중 현재 응답률이 가장 높은 프로세스 선택. SJF의 기아 현상을 보완한 기법으로 긴 작업과 짧은 작업 간 불평등 완화. 우선순위는 (대기 시간 + 서비스 시간) / 서비스 시간 = 응답률
        • 프로세스 관리-교착 상태
          • 교착 상태: 다중 프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원 할당을 무한정 대기하는 상태.
            • 조건
              • 상호 배제:자원을 배타적으로 점유해 다른 프로세스가 자원 사용 X
              • 점유와 대기: 한 프로세스가 자원을 점유하고 있지만 또 다른 자원을 요청해 대기 중
              • 비선점: 한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고, 점유한 프로세스만 해제 가능
              • 환형 대기: 프로세스들 간 점유와 대기가 하나의 원형을 구현
            • 해결 방안
              • 예방: 상호 배제 빼고 나머지 조건 위배 - 점유 자원 해제 후 새 자원 요청
              • 회피: 안전한 상태를 유지할 수 있는 요구만 수락 - 은행가 알고리즘, Wound-wait, Wait-die
              • 발견: 시스템 상태를 감시 알고리즘을 통해 교착 상태 검사 - 자원할당 그래프, Wait for graph
              • 복구: 교착상태가 없어질 때까지 프로세스를 순차적으로 kill해 제거. 희생자를 선택해야 하고 기아 상태 발생 - 프로세스 Kill, 자원 선점
          • 디스크 스케줄링: 사용할 데이터가 디스크 상 여러 곳에 저장되어 있을 때 데이터를 액세스 하기 위해 디스크 헤드를 움직이는 경로 설정. 운영체제가 담당하고 목적은 처리량 최대화 응답시간 최소화,
            • FCFS
            • SSTF(Shortest Seek Time First): 현재 위치에서 탐색 거리가 가장 짧은 트랙 먼저 서비스. 일괄 처리 시스템에 유용.
            • SCAN: 현재 헤드 위치에서 진행 방향이 결정되면 탐색 거리가 짧은 순서에 따라 모든 요청을 서비스 하고, 다 끝나면 역방향으로 감.
            • C-SCAN: 바깥쪽에서 안쪽으로 움직이며 가장 짧은 탐색거리를 찾는 요청. 안쪽 끝까지 이동했으면 다시 바깥쪽부터 탐색.
            • LOOK(엘리베이터 알고리즘): SCAN을 기초로 해 진행 방향으로 더이상 요청이 없으면 역방향으로 감.
            • N-STEP SCAN: SCAN을 기초로 해 어떤 방향이 시작될 당시에 대기중이던 요청들만 서비스 하고, 진행 도중 도착한 요청들은 한꺼번에 모아 반대 방향으로 갈 때 서비스.
            • SLTF(Shortest Latency Tim First): 섹터 큐잉이라고 하며 회전 지연 시간 최적화를 위해 구현됨. 디스크 헤드가 특정 실린더에 도착하면 그 실린더 내의 여러 트랙에 대한 요청들을 검사한 후 가장 짧은 요청부터 서비스.

     

    2. 가상화, 클라우드

    • 가상화(Virtualiztion): 물리적인 리소스들이 사용자에게 하나로 보이게 하거나 여러개로 보이게 함. 서버 가동률을 높일 수 있음.
      • 종류
        • 플랫폼 가상화: 하드웨어 플랫폼 위에서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 독립된 환경에서 만든 것처럼 보여줌.
        • 리소스 가상화: 게스트 소프트웨어 위지만 사용자는 독립된 하드웨어 위에서 소프트웨어가 실행되는 것처럼 활용. 물리적 장치들의 위치를 알기 어려움.
      • 기술 요소
        • 컴퓨팅 가상화: 물리적으로 컴퓨터 리소스를 가상화해 논리적 단위로 활용할 수 있도록 함. 하나의 시스템에서 1개 이상의 운영체제를 가동시킬 수 있어 서버 이용률이 크게 향상 - 하이퍼바이저
        • 스토리지 가상화: 스토리지와 서버 사이에 소프트웨어/하드웨어 계층을 추가해 스토리지를 논리적으로 제어 및 활용. 이기종 스토리지 시스템의 통합을 가능하게 함 - 분산 파일 시스템
        • I/O 가상화: 서버와 I/O 디바이스 사이의 미들웨어 계층으로, I/O자원을 물리적으로 분리하고 케이블과 스위치 구성을 단순화해 효율적인 연결을 지원 - 가상 네트워크 인터페이스 카드
        • 컨테이너: 컨테이너화된 애플리케이션들이 단일 운영체제에서 실행되게 함. 하이퍼바이저 없이 운영체제가 격리된 프로세스로 동작해 오버헤드가 낮음 - 도커
        • 분산처리 기술: 여러 기기의 컴퓨터 계산 및 저장 능력을 이용해 큰 계산 문제나 대용량 데이터 처리 및 저장.
        • 네트워크 가상화: 물리적을 떨어진 장비를 연결하기 위해 중계장치(라우터, 스위치 등)의 가상화해 가상 네트워크 지원 - SDN, NFV
    • 클라우드 컴퓨팅: 인터넷을 통해 가상화된 컴퓨터 시스템 리소스를 제공하고 정보를 클라우드에 연결된 다른 컴퓨터로 처리. 어디에서나 접근 가능.
      • 분류
        • 사설 클라우드: 기업, 조직 내부의 컴퓨팅 자원을 사용해 내부에 구축됨. 직접적인 통제로 보안성을 높일 수 있음.
        • 공용 클라우드: 클라우드 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스 제공. 일정한 제공을 지불해야 하고 확장성과 유연성이 뛰어남.
        • 하이브리드 클라우드: 사설 클라우드와 공용 클라우드를 모두 사용. 구축 비용 문제와 보안성 확보 문제를 해결.
      • 유형
        • 인프라형 서비스(IaaS): 서버, 스토리지 같은 시스템 자원을 클라우드로 제공. 컴퓨팅 자원에 운영체제나 애플리케이션 드으이 소프트웨어 탑재 및 실행. 하위의 클라우드 인프라를 제어하거나 관리하지는 않지만 스토리지, 애플리케이션에는 제어권이 있음.
        • 플랫폼형 서비스(PaaS): 인프라 생성, 관리의 복잡함 없이 애플리케이션 개발, 실행 가능. SaaS 개념을 개발 플랫폼에도 확장한 방식으로 플랫폼 구축 없이 개발 요소를 웹에서 빌려쓸 수 있음. OS, 애플리케이션, 호스팅 환경 제어권을 가짐.
        • 소프트웨어형 서비스(SaaS): 소프트웨어 및 관련 데이터는 중앙에 호스팅 되고, 사용자는 클라이언트로 접속해 소프트웨어를 서비스 형태로 이용.
        • IaaS < PaaS < SaaS
    728x90
Designed by Tistory.