반응형

1.6 프로세스 관리

OS는 프로세스 관리에 관해서 다음과 같은 작업 담당을함.

  • 유저와 시스템 프로세스를 생성 및 제거
  • 다른 프로세스의 침범 없이 각 프로세스는 필요 자원을 할당받음
  • 프로세스를 중지하고 재실행함
  • 프로세스 동기화 및 의사소통
  • 데드락 핸들링

1.7 메모리 관리

OS는 메모리 관리에 관해서 다음과 같은 작업 담당을함.

  • 현재 어떤 메모리의 블록과 프로세스를 사용하는지 확인함.
  • 언제 코드와 데이터의 어느 블록이 메모리로 in / out 되는지 결정
  • 필요 메모리 할당 및 해제

1.8 저장 관리 장치

1.8.1 파일시스템관리

  • 파일과 디렉토리의 생성 및 삭제
  • 파일 및 디렉토리 조작을 위한 지원
  • 보조장치로 파일을 매핑
  • 안정적인(비휘발성) 장치에 파일을 저장 및 백업

1.8.2 대용량 저장 장치 관리

  • 디스크 스케쥴링
  • 저장공간 할당
  • 자유 공간(free-space) 관리

플로피, 하드, 테이프, CD, DVD 등을 포함한 서로 다른 대용량 저장 장치 간의 크기, 속도, 수명, 보안 및 다시 쓰기에 대한 균형 유지

1.8.3 캐싱

  • 느린 저장 공간에서 자주 필요로 하는 부분을 더 작은 빠른 저장 공간이 캐시 또는 임시 스토리지 역할을 하는 경우가 많음.
  • CPU 레지스터부터 하드 드라이브, 그 외 저장공간까지 메모리 저장 공간 계층이 존재

1.11 저장장치 각 단계

  • OS는 어떤 정보를 캐시단계에 저장하고, 언제 데이터를 다른 단계로 이동해야하는지 결정함.
  • 캐시 관리의 적정 선택은 시스템 성능에 많은 영향을 미침
  • 디스크에서 데이터를 읽어오는 것은 하드 -. 메인 메모리 -> CPU캐시 -> 레이스터로 마이그레이션 경로를 따르며 쓰기 데이터는 역으로 경로를 따름.
  • 각 단계는 각 스텝은 (레지스터는 제외) 일반적으로 즉시 필요한 것 보다 더 많은 데이터를 가져오며 미래의 요청을 더 빠르기 충족하기 위해 초과 데이터를 캐시함
  • 쓰기에 있어서 체인의 다음 출력 장치 전체의 블록을 채울수 있을 정도로 충분할때 까지 작은양의 데이터를 버퍼링함.
  • 여러 프로세스 (혹은 여러 컴퓨터가) 공통 데이터에 접근할 때 더 복잡한 문제임. 모든 접근이 가장 최신에 업데이트된 캐시된 데이터의 복사본에 도달하는 것이 가장 중요함. (서로 다른 캐시 수준의 여러 복사본 중에서)

1.12 정수 A의 디스크로부터 레지스터로 이동하는 과정

1.8.4 입출력 시스템

  • 버퍼링, 캐싱, 스풀링을 포함 메모리 관리 구성
  • 일반적인 장치 드라이버 인터페이스
  • 특정 하드웨어를 위한 드라이버

 

1.9 보호와 보안 (Protection and Security)

  • 보호는 권한이 없는 리소스에 대한 프로세스 접근 또는 간섭이 없도록 하는것을 포함
  • 보안은 무단 접근 및 권한을 얻으려는 시스템의 합법적인 사용자 또는 시스템에 접근하거나 손상을 입히려는 외부 공격자의 공겨긍로 부터 시스템을 보호

1.10 커널 자료 구조

1.10.1 리스트 스택 큐

1.13 단일 연결 리스트

 

1.14 이중 연결 리스트

 

1.15 원형 연결 리스트

  • 스택은 후입선출
  • 큐는 선입선출

1.10.2 트리

1.16 이진탐색트리

1.10.3 해시 함수와 맵

  • 해시함수는 데이터를 입력받아 하나의 수를 반환
  • 테이블의 동일 위치로 색인될 수 있는 경우를 해시충돌이라고함
  • 효율이 떨어지는 결과를 나타냄
  • 해시맵은 함수를 사용 (키:값)

1.17 해시맵

1.10.4 비트맵

  • 디스크나 메모리 페이지의 블록의 free 상태와 같은 객체의 집단을 bool 형태로 추적하는데 사용되는 0과 1의 문자열이다.

 

1.11 계산 환경 (컴퓨팅 환경)

1.11.1 전통적 계산

1.11.2 이동형 컴퓨팅

  • 손에 들어오는 장치(핸드폰 or 테블릿)에서 계산
  • GPS, 기울기, 나침반 및 관성과 같은 추가 내장 센서
  • 무선 네트워크 or 핸드폰 기술로 연결되는 인터넷
  • PC와 비교해서 제한된 저장소, 메모리 그리고 컴퓨팅 성능
  • 구글 안드로이드와 애플의 IOS가 대표적

1.11.3 분산 시스템

  • 분산 시스템은 네트워크로 연결되고 몇개의 다른 방식으로 협력하는 이기종 컴퓨터로 구성된다.
    이기종 : heterogeneous computing라고 하며 하나 이상의 프로세서 또는 코어를 사용하는 시스템을 뜻함.
  • 네트워크는 작은 범위의 LANs부터 넓은 범위의 WANs까지 존재합니다.
    • WAN = Wide Area Network, 국제 기업 네트워크
    • MAN = Metropolitan Area Network, 대도시 지역 네트워크
    • LAN  = Local Area Network, 대학 캠퍼스, 회사나 집 네트워크
    • PAN  = Personal Area Network, 블루투스
  • 네트워크 접근 속도, 처리량, 안정성은 모두 중요하다.
  • 네트워크에 대한 OS 관점은 특별한 형태에서 파일 접근부터 복잡하고 정돈된 네트워크 OS까지 포함한다.
  • 공유자원은 CPU주기, 파일, RAM, 프린터 및 기타 리소스를 포함한다.

1.11.4 클라-서버 컴퓨팅

  • 서버는 클라이언트로 역할을 하는 다른 프로그램에 서비스를 제공
    (전형적으로 클라/서버는 프로세스며 하드웨어가 아니다. 같은 PC안에 공존이 가능하다)
  • 프로세스는 같은 혹은 다른 자원으로 클라, 서버 역할이 가능
  • 제공된 자원은 디스크공간, CPU 주기, 날짜, IP, 그래픽화면 등 자원을 포함한다.

1.18 클라-서버 시스템의 일반적 구조

 

1.11.5 Peer-to-Peer 컴퓨팅

  • 네트워크상에서 컴퓨터나 프로세스는 서비스를 요청하는 사람에게 서비스를 제공, 명확한 조직이 없음
  • 자원의 위치를 찾기 위해 중앙 디렉토리를 사용하거나 자원을 찾기위해 P2P 검색을함.
  • 예) 스카이프는 원하는 peer를 찾기 위해 중앙 서버를 사용하고, p2p로 의사소통을 함.

 

1.19  중앙화 서비스가 없는 P2P시스템

1.11.6 가상화

  • 한 명 이상의 "게스트" 운영체제가 단일 머신 및 가상 머신 매니저가 호스팅하는 가상머신에서 실행 될 수 있음.
  • 크로스 플랫폼 개발과 지원에 사용됨.
  • 예) UNIX 프로그램을 윈도우 환경에서 개인 PC로 가상 머신에서 실행을 할 수 있다면 가상 머신에 root 권한으로 접근이 가능하며 크러시가 발생해도 윈도우 환경은 영향을 미치지 않음.
  • 시스템 콜은 VMM에 의해서 실행되야하고 기본OS에 대한 다른 시스템 콜로 변환되야함
  • VMM을 통한 가상화는 프로그램을 느리게 할 수 있지만, 가상 하드웨어가 물리적 장치 대신에 캐시를 통한 접근한다면 속도를 올릴 수도 있음.
  • 구현에 따라 프로그램은 가상머신을 우회해서 동시에 실행 할 수 있음.

1.20 VMWare

1.11.7 클라우드 컴퓨팅

  • 네트워크를 통한 저장소, 어플리케이션, 컴퓨팅을 서비스함
  • 클라우드 컴퓨팅의 종류
    • Public cloud - 돈만 지불하면 누구나 이용 가능
    • Private cloud - 내부 사용자만 이용가능
    • Hybrid cloud - 공적 + 사적이 합쳐진 형태
    • Software as a Service(SaaS) - 인터넷을 통한 워드 프로세스같은 어플
    • Platform  as a Service(PaaS) - DB서버와 같은 어플리케이션의 소프트웨어 스택
    • Intrastructure as a Service(IaaS) - 빽업서버, 사진저장소, 파일 저장소와 같은 인터넷 저장소
    • 1개의 type 이상의 서비스를 제공
  • 클라우드는 수천개의 PC, 수백만의 가상PC, 페타바이트의 저장소를 포함 할 수 있음.
  • Web 호스팅은 하나 혹은 그 이상의 가상머신을 고객에게 제공

1.21 - 클라우드 컴퓨팅

1.11.8 실시간 임베디드 시스템

  • 자동차, 실내 온도 조절 시스템 심지어 토스터와 냉장고 까지 내장.
  • 프로세스 제어 장치에 실시간(인터럽트 기반) OS 필요.

1.12 오픈소스 운영체제

  • 소수의 프로그래머들에 의해 관리 및 개발되고 공익을 위해 일함
  • 누구나 코드를 확인하고 임의로 변경 가능

1.12.2 리눅스

  • 1991년 핀란드의 Linus Torvalds에 의해 GNU에 의해 개발된 최초의 완전한 운영체제
  • RedHat, SUSE, Fedora, Debian, Slackware, Ubuntu 등 Linux의 많은 다른 배포판

1.12.3 BSD 유닉스

  • RedHat, SUSE, Fedora, Debian, Slackware, Ubuntu 등 Linux의 많은 다른 배포판
  • BSD UNIX는 ATT에서 라이선스가 필요하기 때문에 오픈소스는 아님

1.12.4 솔라리스

  • Solaris는 Sun Microsystems의 시스템용 UNIX 운영 체제
  • Solaris의 일부는 현재 오픈 소스이며, 일부는 아직 ATT 저작권의 적용을 받기 때문에 오픈 소스가 아님

 

 

https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/index.html
반응형

'이론공부 > OS' 카테고리의 다른 글

[운영체제] Operating System Concepts, Chapter 1 - 1  (0) 2023.02.20
Operating System Structures Chapter2  (0) 2021.07.25

+ Recent posts