반응형
1.6 프로세스 관리
OS는 프로세스 관리에 관해서 다음과 같은 작업 담당을함.
- 유저와 시스템 프로세스를 생성 및 제거
- 다른 프로세스의 침범 없이 각 프로세스는 필요 자원을 할당받음
- 프로세스를 중지하고 재실행함
- 프로세스 동기화 및 의사소통
- 데드락 핸들링
1.7 메모리 관리
OS는 메모리 관리에 관해서 다음과 같은 작업 담당을함.
- 현재 어떤 메모리의 블록과 프로세스를 사용하는지 확인함.
- 언제 코드와 데이터의 어느 블록이 메모리로 in / out 되는지 결정
- 필요 메모리 할당 및 해제
1.8 저장 관리 장치
1.8.1 파일시스템관리
- 파일과 디렉토리의 생성 및 삭제
- 파일 및 디렉토리 조작을 위한 지원
- 보조장치로 파일을 매핑
- 안정적인(비휘발성) 장치에 파일을 저장 및 백업
1.8.2 대용량 저장 장치 관리
- 디스크 스케쥴링
- 저장공간 할당
- 자유 공간(free-space) 관리
플로피, 하드, 테이프, CD, DVD 등을 포함한 서로 다른 대용량 저장 장치 간의 크기, 속도, 수명, 보안 및 다시 쓰기에 대한 균형 유지
1.8.3 캐싱
- 느린 저장 공간에서 자주 필요로 하는 부분을 더 작은 빠른 저장 공간이 캐시 또는 임시 스토리지 역할을 하는 경우가 많음.
- CPU 레지스터부터 하드 드라이브, 그 외 저장공간까지 메모리 저장 공간 계층이 존재
- OS는 어떤 정보를 캐시단계에 저장하고, 언제 데이터를 다른 단계로 이동해야하는지 결정함.
- 캐시 관리의 적정 선택은 시스템 성능에 많은 영향을 미침
- 디스크에서 데이터를 읽어오는 것은 하드 -. 메인 메모리 -> CPU캐시 -> 레이스터로 마이그레이션 경로를 따르며 쓰기 데이터는 역으로 경로를 따름.
- 각 단계는 각 스텝은 (레지스터는 제외) 일반적으로 즉시 필요한 것 보다 더 많은 데이터를 가져오며 미래의 요청을 더 빠르기 충족하기 위해 초과 데이터를 캐시함
- 쓰기에 있어서 체인의 다음 출력 장치 전체의 블록을 채울수 있을 정도로 충분할때 까지 작은양의 데이터를 버퍼링함.
- 여러 프로세스 (혹은 여러 컴퓨터가) 공통 데이터에 접근할 때 더 복잡한 문제임. 모든 접근이 가장 최신에 업데이트된 캐시된 데이터의 복사본에 도달하는 것이 가장 중요함. (서로 다른 캐시 수준의 여러 복사본 중에서)
1.8.4 입출력 시스템
- 버퍼링, 캐싱, 스풀링을 포함 메모리 관리 구성
- 일반적인 장치 드라이버 인터페이스
- 특정 하드웨어를 위한 드라이버
1.9 보호와 보안 (Protection and Security)
- 보호는 권한이 없는 리소스에 대한 프로세스 접근 또는 간섭이 없도록 하는것을 포함
- 보안은 무단 접근 및 권한을 얻으려는 시스템의 합법적인 사용자 또는 시스템에 접근하거나 손상을 입히려는 외부 공격자의 공겨긍로 부터 시스템을 보호
1.10 커널 자료 구조
1.10.1 리스트 스택 큐
- 스택은 후입선출
- 큐는 선입선출
1.10.2 트리
1.10.3 해시 함수와 맵
- 해시함수는 데이터를 입력받아 하나의 수를 반환
- 테이블의 동일 위치로 색인될 수 있는 경우를 해시충돌이라고함
- 효율이 떨어지는 결과를 나타냄
- 해시맵은 함수를 사용 (키:값)
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.11.5 Peer-to-Peer 컴퓨팅
- 네트워크상에서 컴퓨터나 프로세스는 서비스를 요청하는 사람에게 서비스를 제공, 명확한 조직이 없음
- 자원의 위치를 찾기 위해 중앙 디렉토리를 사용하거나 자원을 찾기위해 P2P 검색을함.
- 예) 스카이프는 원하는 peer를 찾기 위해 중앙 서버를 사용하고, p2p로 의사소통을 함.
1.11.6 가상화
- 한 명 이상의 "게스트" 운영체제가 단일 머신 및 가상 머신 매니저가 호스팅하는 가상머신에서 실행 될 수 있음.
- 크로스 플랫폼 개발과 지원에 사용됨.
- 예) UNIX 프로그램을 윈도우 환경에서 개인 PC로 가상 머신에서 실행을 할 수 있다면 가상 머신에 root 권한으로 접근이 가능하며 크러시가 발생해도 윈도우 환경은 영향을 미치지 않음.
- 시스템 콜은 VMM에 의해서 실행되야하고 기본OS에 대한 다른 시스템 콜로 변환되야함
- VMM을 통한 가상화는 프로그램을 느리게 할 수 있지만, 가상 하드웨어가 물리적 장치 대신에 캐시를 통한 접근한다면 속도를 올릴 수도 있음.
- 구현에 따라 프로그램은 가상머신을 우회해서 동시에 실행 할 수 있음.
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.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 |