728x90
반응형
SMALL

파일 시스템

  • 다양한 종류의 장치에 정보를 조직화하고 저장하지만, 온영체제들은 모두 동일한 인터페이스를 통해 파일들을 보여준다.
    • 디렉토리 방식 또는 폴더 방식
  • 논리적 구성과 물리적 구현 간의 분리를 보여주는 훌륭한 사례
  • 사용자가 접근하는 파일들뿐만이 아니라, 다양한 어플리케이션들이 보이지 않게 접근하는 파일들이 수만 개에 이른다.
  • 애플리케이션이나 운영체제가 정보를 읽고 쓸 수 있도록 가능하게 해줌
  • 파일에 대한 접근이 효율적이며 간섭되지 않도록 조정하고, 데이터의 물리적인 위치를 파악해줌

보조 기억 장치 파일 시스템

  • 블록 단위로 파일들을 저장한다.
    • 블록의 단위가 500바이트 이고 1200바이트를 저장한다면 3 블록이 필요하며 300바이트가 낭비 된다.
    • 이런 단점을 저렴한 가격이 커버해준다.
  • 폴더 엔트리에는 파일이름, 크기, 생성 및 수정 시간 외 다양한 정보를 담고 있다.
    • 드라이브의 어디에 저장되어있는지, 어떤 블록이 해당 파일의 정보를 담고 있는지도 알려준다.
    • 폴더 엔트리가 블록 번호 목록을 담고 있거나, 블록 번호의 목록을 담고 있는 블록을 참고하거나, 블록들이 다음 블록의 번호를 담고 있어 연쇄적으로 구할 수 도 있다.
  • SSD는 하드디스크와 달리 정보의 위치가 어디 있는지 기억하기 위한 정교한 코드를 사용한다.
  • 폴더 : 파일을 저장하는 공간이며 블록이자 또 다른 파일이라고 할 수 있다.
  • 경로(디렉토리) 방식 : 경로를 따라서 폴더를 찾아 들어갈 때 마다 검색 범위가 좁아지기 때문에 매우 효율적인 방식이다.
  • 빠른 작업속도를 위해 자주 사용되는 폴더를 캐싱하기도 함
728x90
반응형
LIST
728x90
반응형
SMALL

부팅(booting)

컴퓨터가 작동을 시작하는 과정

  • 메모리와 다른 구성 요소를 점검해서 올바르게 작동하는지 확인
  • 컴퓨터에 어떤 외부 장치가 연결되어 있는지 알아냄
  • 연결된 장치를 운영체제가 사용할 수 있도록 관련된 소프트웨어 구성 요소(드라이버) 로드

시스템 콜(syscall)

애플리케이션이 운영체제 특정 부분에 통제권을 넘겨주는 명령어를 실행하여 서비스를 요청하는 것.

고급 언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에 고급 API를 통해 시스템 호출에 접근하게 하는 방법.

시스템 호출의 유형

  1. 프로세스 제어(process control)
  2. 파일 조작(file manipulation)
  3. 장치 관리(device management)
  4. 정보 유지(information maintenance)
  5. 통신(communication)

디바이스 드라이버

운영체제와 프린터 등과 같은 하드웨어 장치 간에 가교 역할을 하는 코드

특정 장치가 어떤 일을 하도록 하는지 알고 있다.

 

예시) 프린터

운영체제는 일반적인 요청을 하고 싶어한다.

예를 들어, 어떤 텍스트를 어떤 위치에 출력하고 이런 것.

하지만 프린터마다 지원하는 기능에 차이가 있다.

컬러, 흑백, 양면, 단면, 종이 크기, 정보를 종이에 옮기는 매커니즘 등.

드라이버는 운영체제의 일반적인 요청을 해당 프린터에 적합한 형태로 변환한다.

 

→ 범용 운영체제에는 많은 디바이스 드라이버가 있다.

부팅 시 현재 필요한 드라이버를 불러오는 작업도 이루어 진다.

디바이스 드라이버, 운영체제, 시스템 콜 인터페이스

 

그림에서 시스템 호출을 *커널을 모두 커버하고 있는데, 시스템 호출을 거치지 않고서는 커널에 접근이 불가능하다는 것을 뜻한다.

드라이버의 경우 커널에서 제공하는 드라이버도 있고 하드웨어에서 제공하는 드라이버도 있어 필수 요소가 아니다.

*커널 - 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아 놓은 것.


다양한 디지털 장치와 운영체제

기술의 발달로 많은 장치의 처리 성능과 메모리 용량이 높아졌다.

디지털 카메라, 휴대폰 등의 기기들을 컴퓨터라고 불러도 이상하지 않다.

 

이러한 기술 발달 덕분에 장치들을 범용 컴퓨터와 비슷한 모습을 띠고 있다.

프로세서 + 메모리 + 주변 장치 등으로 되어 있고,

사용자 인터페이스와 네트워크 연결도 제공한다.

 

이런 추세는 범용 운영체제 사용을 가속화 시킨다.

전용 운영체제 개발보다는 리눅스에서 필요한 부분만 뽑아 쓰는 것이 더 쉽고 저렴하다.

728x90
반응형
LIST
728x90
반응형
SMALL

가상 운영체제에 앞서 가상 메모리 다시 짚어보기

메모리(RAM)에 필요한 것들만 가져다 놓고 곧 사용이 필요할 것 같은것들은 보조기억장치(하드디스크)에 어디있는지 주소만 대기 시킨다.

ex) 게임을 하던 도중 1번 던전을 해야해서 1번 던전에 대한 내용이 RAM에 있다. 이것을 깨면 2번 던전으로 넘어가게 될 것이다. 하지만 RAM에 굳이 2번 던전까지 가져다 놓을 필요없이 로딩하면서 2번 던전을 메모리로 불러온다. >> 틀린거 같으면 태클좀

운영체제의 발전

  1. 처리 역량
    1. 초장기 운영체제는 메모리도 작고, 작업도 단순하여 스와핑이 제한적으로 이루어짐
    2. 요즘에는 정교하고 더 복잡한 환경에서 더 많은 장치를 다룬다.
  2. 개발의 어려움과 코드 수
    1. 1975년 유닉스 운영체제 6판은 C와 어셈블리 언어 9000행으로 이루어짐
    2. 오늘날 리눅스는 1천만행이 훨씬 넘고, 수십 수년간 수천 명이 작업한 결과물
  3. 리눅스 운영체제의 기원
    1. 리누스 토르발스가 1991년 유닉스의 자신만의 버전을 새로 만들며 10000행 정도의 초안을 인터넷에 올리고 다른 사람들에게 사용하고 피드백을 요청하며 다수가 사용 시작

가상운영 체제

  1. 하드워에 개발 시 다른 운영체제 사용 가능
    1. 디크스에 여러 운영체제를 저장해 두고 컴퓨터를 컬때마다 어느 것을 실행할 지 결정할 수 있다. 이것을 ‘멀티 부트’라고 하며 애플은 ‘부트 캠프’ 라고도 한다.

  1. 그림과 같이 다른 운영체제 위에서 다른 운영체제를 실행하여 그 운영체제로 앱을 실행시킬 수 있다.
    1. 가상 운영체제 프로그램(VM웨어, 버주얼박스, 젠 등)은 게스트 운영체제로 실행할 수 있게 도와준다.
    2. 호스트는 게스트가 생성하는 요청 중 파일 시스템 접근이나 네트워크 접근 등 운영체제 권한이 필요한 요청을 가로챈다.
    3. 호스트는 작업을 수행한 다음 게스트로 되돌아간다.
    4. 호스트와 게스트가 둘다 같은 하드웨어에 맞게 컴파일되면 게스트 운영체제는 대개 하드웨어가 낼 수 있는 최고 속도로 실행되고, 거의 실체 컴퓨터상에서 직접 실행되듯 반응하는 것 처럼 느껴진다.
  2. 특이사항
    1. 그렇다면 하나의 윈도우를 구매해서 가상으로 여려대로 돌려도 될까?
    2. 돈 많은 사람은 멍청하지 않다 : 합법적으로 실행할 수 있는 가상 인스턴스 사본의 개수를 제한하고 있다.

가상 머신

  1. 진짜 컴퓨터든 모형 컴퓨터 같은 상상의 컴퓨터든, 컴퓨터인 것처럼 작동하는 프로그램을 가상 머신이라고 한다.
  2. 스프트웨어만 존재하지만 하드웨어인 것처럼 그 작동 방식을 모방한다.
  3. ex) 우리가 컴퓨터로 포켓몬스터 골드버전을 하면 TGB 애뮬레이터를 킨다. 우리는 컴퓨터안에 가짜 게임보이 게임기를 만들어 놓고 거기에다가 가짜 게임칩을 넣어서 플레이 하는 것이다.
    1. 더 나아가면 NOX도 있다. 컴퓨터에 가짜 휴대폰 깔아서 그 휴대폰에서 휴대폰 전용 앱을 구동시키는 것이다.
  4. 위 예시처럼 물리적인 장비가 필요없이 사용할 프로그램을 더 쉽고 유연하게 사용 가능하다.
  5. 클라우드 컴퓨팅은 가상 머신에 의존한다. 고객들이 사용하는 가상 머신은 그보다 더 적은 수의
  6. 물리적 컴퓨터의 지원을 받으며, 멀티코어 프로세서가 이런 종류의 작업에 적합하다.
  7. AWS는 최대 클라우드 컴퓨팅 제공 업체이다. AWS의 이익의 절반 이상이 여기서 나오며, 고객들의 작업량 변화에 맞게 서비스의 성능과 용량을 늘리거나 줄여 제공한다. (우리 프로젝트 비용이 AWS의 밥줄인 것이다.)

반대로 물리적인 컴퓨터가 아니기 때문에 기업입장에서는 필요한 만큼만 제공하여 불필요한 리소스를 낭비하지 않을 수 있고, 고객은 필요한 만큼의 서버나 저장공간만 빌리면 된다.

 


가상 머신과 가상 운영체제

출처 : https://dmsitter.tistory.com/70 : 가상 머신에 대한 사용 예시를 잘 설명해줌

결론 : 가상 머신은 물리적인 컴퓨터에서 소프트웨어로 구현된 가상의 컴퓨터이며, 가상 운영체제는 가상 머신 내에서 작동하는 가상 환경에서의 운영체제를 의미한다. 가상 머신은 가상 소프트웨어를 통해 호스트의 컴퓨터의 리소스를 가상화하고, 가상 운영체제는 가상 머신 내에서 실행되는 운영체제로써 가상 머신 내의 다른 소프트웨어와 리소스를 관리한다.

728x90
반응형
LIST

+ Recent posts