본문 바로가기

Computer Science/OS

운영체제의 소개 - 개념, 개발목표, 기능

기능은 크게 2가지

 

자원관리, 기타 시스템 관리

 

 

사용자와 하드웨어 사이의 중간 매개체로

응용 프로그램의 실행을 제어하고,

자원을 할당 및 관리하며,

입출력 제어 및 데이터 관리와 같은 서비스를 제공하는 소프트웨어

 

컴퓨터 시스템을 구성하는 하드웨어와 사용자 또는 응용프로그램의 중간에 위치하여 쉽고 간편하게 컴퓨터 시스템을 이용할 수 있도록 컴퓨터 시스템을 제어하고 관리하는 시스템 소프트웨어

 

 

 

 

 

 

운영체제의 역할

  • 사용자와 하드웨어 사이의 대화 통로
  • 컴퓨터를 편리하게 사용할 수 있도록 사용자 인터페이스를 제공
  • 응용 프로그램이 작업을 할 수 있는 환경을 제공
  • 하드웨어 자원 운영 관리
  • 응용 프로그램 내의 부적절한 명령어나 오류 대처

 

 

 

 

둘의 차이는 무엇 인가요?

 

기계 종속적이냐 아니냐 라는 차이가 있습니다.

 

시스템 개발 소프트웨어에는 개발을 하기 위한 컴파일러, 로더, 빌터 같은게 속합니다.

 

유틸리티 프로그램에는 안티 바이러스, 디스크 정리기, 레지스터를 관리하는 프로그램 등등 편리하게 사용하게해주는 프로그램이 있습니다.

 

그 중에도 기계종속적인것을 시스템 소프트웨어라고 합니다.

 

어플리케이션 소프트웨어는 

기계종속적이지 않고 OS위에서 돌아가는 것을 뜻합니다.

 

문제)

시스템 소프트웨어 = 기계종속적인것 

 

웹브라우저, 한컴 오피스 

 

 

 

운영체제 계발 목표 

 

편의성, 성능을 모두 좋게 해야한다.

 

하지만 편의성을 높이면 성능이 떨어지고 성능을 높히면 편의성이 떨어지낟.

 

편의성convenience

사용자에게 편리한 환경 제공

 

효율성efficiency

시스템 성능 극대화

  • 처리량  
  • 지연·응답시간
  • 신뢰도
  • 가용성 (사용 가능도)

 

 

비용일거 같다. 

 

처리능력 - 어떤식으로 프로세스를 처리하는지

신뢰도 - 얼마나 정확하게 처리를 하는지

사용가능도 - 어떤 하드웨어에 적용이 가능한지

 

나머지는 다 성능에 영향을 미친다. 

 

 

 

1 - 처리량 향상 

2 - 반환시간 단축 (다 끝나는 시간 단축)

3 - Availability는 유용성이라는 뜻이다. 즉 증가시켜야 한다.

4 - reliability 신뢰성이다 

 

 

운영체제의 기능 

 

 

운영체제의 기능 - 자원 관리

대표적으로 메모리, 프로세서, i/o장치 자원을 관리합니다.

 

자원 자체는 프로세서이다.

프로세서 에서 돌아가는 프로그램을 프로세스 라고 한다.

 

 

 

자원관리 - 메인 메모리 관리

메인 메모리 관리 기능

메모리 할당/회수

어떤 프로세스에게 얼만큼 할당할 것인지 결정

왼쪽이 메모리이다. 

메모리에 운영체제가 차지하고 있는 영역이 있습니다.

 

나머지 프로세스들을 실행중일 때 메모리에 들어와 있습니다.

 

운영체제가 메모리를 할당해 줘야지만 쓸 수 있습니다.

 

 

 

자원관리 - 프로세스 관리 기능 

  • 프로세스 생성, 종료
  • 프로세스 중지, 재수행
  • 프로세스 스케줄링
  • 프로세스 통신 방법 제공
  • 프로세스 동기화 방법 제공(프로세스가 협력을 해야할 때)
  • 교착 상태deadlock 방지 방법 제공 - 여러 프로세스가 돌다보면 서로가 서로를 기다리느라 아무것도 못하는 상태

 

자원관리 - 장치 관리 기능 

 

일반/특정 장치용 드라이버 제공

  • 장치 드라이버를 사용하여 입출력장치와 상호작용

입출력 장치 스케줄링

 

접근 요청 스케줄링

  • 디스크 스케줄링

보조 기억 장치 관리의 기능

  • 저장 장소 할당/ 회수
  • 빈 공간 관리
  • 버퍼캐시buffer-cache 기능 제공

캐시란? cpu와 메인 메모리 사이에 속도 차이를 완충시켜주는 용도

메인 메모리의 일부를 캐시에 올려두고 cpu가 빠르게 접근 할 수 있게 합니다.

 

 

버퍼캐시란? 메인 메모리와 디스크 사이에서 캐시 역할을 하는 겁니다.

 

사실 메인 메모리에 올려져 있는 것은 디스크에 있는 것 입니다.

디스크에 있는 것중 cpu가 필요하는 것만 메인메모리에 올려가지고 사용 했었습니다.

또, 필요 없어지면 다시 디스크로 내보냈습니다.

 

필요없는 자원을 디스크로 보내야 하는데 보내지 않고 메모리의 일부에 임시로 두는 것입니다. 

왜냐? 다시 쓸 수도 있으니깐요

 

 

 

 

자원관리 - 파일 관리 기능 

파일(데이터) 관리 합니다.

 

파일 생성, 삭제

  • 디렉터리 생성, 삭제
  • 비휘발성 저장장치에 파일 저장

파일에 대한 접근 제어 - 엑세스 컨트롤(어떤 프로세스가 읽기, 쓰기 권한을 가지는지)

 

보조기억장치의 file mapping

-디스크의 파일을 메모리에 적재하는

-메모리에 입출력 하는 것이 바로 디스크 입출력이 되게 하는 기능

 

파일을 읽고 쓰고 할 때 hdd,ssd 에 있다면 느릴 것입니다.

그래서 메모리로 가져옵니다.

그럼 어디,어떻게 메모리에 적재해야할까? file mapping에 합니다.

 

 

 

사용자 관리 입니다.

 

사용자를 자원이라고 하기에는 어렵다.

 

 

 

 

 

기타시스템 관리

 

시스템 보호(사용자 권한 부여)

컴퓨터 자원에 대한 프로세스와 사용자의 접근 제어

어떤 사용자가 읽을 수 있는지 , 쓸 수 있는지 제어하고 막는 것이 운영체제

  • 동시 실행 프로세스들은 상호 보호 필요(동시실행 프로세스를 막습니다.)
  • 데이터 보호

    파일 사용 권한 부여, 데이터 암호화 등의 서비스 제공

    파일 공유 시 여러 사용자로 부터 파일 보호

 

 

네트워킹(통신)

프로세스 통신 시 경로 설정, 접속 정책, 충돌, 보안 등 고려해야 함

 

 

명령어 해석

명령 해석기command interpreter는 운영체제의 일부

  • 사용자와 운영체제 사이의 인터페이스(unix의 shell)

      명령어를 이해하고 실행

 

  • 커널(핵심)과 분리하는 것이 좋음

      커널 코드 변경 없이 명령어 해석기의 인터페이스만 변경 가능

 

 

4번 - 커널은 주기억장치에서 보조기억장치로 갈 일이 없다.

부팅할 때 보조기억장치에서 주기억장치로 옮겨지기는 합니다.

부팅 서비스는 운영체제의 서비스중 하나입니다.

 

2번 - 이건 운영체제의 자원 관리 기능은 맞다. 근데 쉘의 기능은 아닙니다.

 

ex)ls 를 치면 ls 프로세스를 꺼내서 실행합니다

728x90