• 카테고리

    질문 & 답변
  • 세부 분야

    기타 (개발 · 프로그래밍)

  • 해결 여부

    해결됨

강의중 2가지 질문 입니다.

23.11.29 11:10 작성 조회수 56

0

안녕하세요

 

강의중에서 질문 있는데요

 

  1. 컴퓨터는 유저수준과 커널수준이 있잖아요 유저에서 커널로 넘어가는게 시스템콜이고요근데 커널수준의 프로그램과 시스템 소프트웨어랑 차이가 뭔가요? 비슷한건가요?

  2. 가상기계란 각자가 1개의 컴퓨터를 쓰는 듯한 착각이라고 하셨는데요 이게 무슨말이죠?

     

    vmware 같은거 쓰면 1개의 컴퓨터에 여러개의 os 뜨게할수 있는거 아닌가요?

     

     

답변 1

답변을 작성해보세요.

0

안녕하세요.

출장 관계로, 질문을 늦게 확인했습니다. 양해를 구합니다.

 

 

1. 이 부분은 이 시리즈 강의의 (1)편을 참고하시면 도움이 될 겁니다.

컴퓨터의 기능은 여러가지로 분류합니다만, O/S의 프로그램 실행 기준으로 간단히 구별할 때는 물론 kernel-mode, user-mode 정도로 구분하지만,

사용자 프로그램은 좀더 세분해서 볼 수 있습니다.

kernel-mode 만 사용하는 프로그램들은 사실상 그렇게 많지 않습니다. C 프로그램에서도 system-call 만 사용해서 프로그램을 짜겠다면, 우선 모든 printf 종류의 함수들이 system-call 에 해당되지 않아서, 사용하지 않아야 합니다.

kernel-mode 만 사용하는 프로그램들이 너무 제한적이다 보니까, 어느정도, 사용자들이 분명히 사용할 것 같은 프로그램을 미리 짜서 제공하는 경우가 많고, 이것들을 시스템 소프트웨어로 분류하는 것이 일반적입니다.

예를 들어, 계산기 프로그램 (윈도우의 기본 계산기, Unix 의 bc 등)은 분명히 kernel-mode 보다 더 많은 기능을 쓰지만, O/S 에서 기본 제공하는 프로그램이고, 사용자들이 보통 생각하는 대형의 어플리케이션 프로그램들은 아니라서, 별도로 시스템 소프트웨어로 분류하는 것이 일반적입니다.

또한, 디바이스 드라이버들도 O/S kernel-mode 에 완전히 속하지는 않지만, 별도 제공되는 경우가 많고, 이것도 시스템 소프트웨어로 분류하기도 합니다.

 

 

2. 강의 내용에서도 설명했습니다만, 가상 기계의 개념은 여러 명이 동시에 사용하는 대형 컴퓨터에서 출발했습니다.

대형 컴퓨터에 여러 명이 동시에 접속하면, 각 사용자에게 별도의 O/S와 개발 환경을 제공하면, 사용자 1명 기준으로는 각자가 나만의 사용자 환경을 잘 사용하고 있는 듯한 착각을 일으키게 해서, 각자가 1개의 컴퓨터를 혼자 쓰는 것으로 느끼게 하자는 개념입니다.

1개의 PC 에서 1명이 혼자 O/S 여러개 깔아서 돌아가면서 쓸 때는, 어차피 나혼자 쓰는것인데, 무슨 소리인가 싶을 수 있습니다만, 현재도 클라우드 환경에서 계정을 받아서 쓰는 경우라면, 클라우드 계정 1개로 들어가서, 나만의 환경을 설정해서, 나 혼자 쓰는 듯한 착각을 하게 만들어 주지만, 실제 클라우드 환경에서 사용하는 기계는 대형 서버급 컴퓨터라서, 실제로는 1개의 대형 컴퓨터에 몇천명이 동시 사용하는 것이 일반적입니다.

바로 이때, 실제 클라우드 업체에서는 서버 1대에 2,000명이 접속했다고 보지만, 접속한 1명의 입장에서는 개인 PC를 사용하는 듯한 착각을 하게 하는 것이 가상기계의 핵심 개념입니다.

 

감사합니다.