운영체제 (Operating System)
User가 사용하는 응용 프로그램(Application)과 하드웨어 사이에서 동작하는 프로그램을 말한다.
Windows, MacOS, UNIX(Linux) 등이 운영체제에 해당된다.
OS는 더 상세히 커널(kernel)을 의미하고, 이 커널에 여러 가지가 추가된 것을 운영체제라고 말한다.
💡운영체제는 사용자가 사용하는 응용 프로그램이 효율적으로, 적절하게 동작하도록 지원한다. 즉, 응용 프로그램이 요청하는 시스템 리소스를 효율적으로 분배하고, 지원하는 소프트웨어이다.
커널(kernel)
커널은 운영체제에서 가장 중요한 소프트웨어로, 컴퓨터의 자원들을 관리하는 역할을 한다. 하드웨어의 자원을 프로세스에 할당하고, 프로세스 제어, 메모리 관리, 시스템콜 수행 등을 수행한다. 즉, 하드웨어와 가장 가까운 아래 계층에 위치한 커널에 여러가지 소프트웨어 계층을 올린 것을 운영체제라고 한다.
컴퓨터 자원(System Resource) : CPU, Memory, File, Network, I/O device
커널의 5가지 관리자
- task 관리자 : 물리적 자원인 CPU를 추상 자원인 task로 제공
- memory 관리자 : 물리적 자원인 memory를 추상 자원인 page, segment로 제공
- file system 관리자 : 물리적 자원인 disk를 추상 자원인 file로 제공
- network 관리자 : 물리적 자원인 network device를 추상 자원인 socket으로 제공
- device driver 관리자 : 각종 외부 장치에 대한 접근을 제공 (마우스, 키보드, 프린터, GPU 등)
커널은 오직 컴퓨터 자원만 담당하기 때문에, User와의 상호작용은 전혀 지원하지 않는다. 따라서 등장하는 것이 커널 이외의 Shell과 같은 시스템 프로그램이다.
커널은 사용자가 hardware에 접근하고 통신하기 위한 중간 다리 역할을 한다.
쉘(Shell)
쉘은 사용자가 운영체제의 기능을 조작할 수 있도록 인터페이스를 제공하는 응용 프로그램이다.
조작 방법에 따라 CLI와 GUI로 나눌 수 있다.
- CLI(Command-Line-Interface, 터미널 환경) : 타이핑으로만 조작할 수 있는 쉘이다.
- GUI(Graphical User Interface) : 그래픽으로 구성된 쉘이다.
- 대표적인 쉘(Shell)로 리눅스의 bash가 있다.
시스템 콜(System Call)
운영체제의 기능을 사용할 수 있도록 하는 명령 또는 함수이다.
- 커널과 쉘 사이에 소통을 하기 위한 인터페이스이다.
- 운영체제는 운영체제의 여러 기능들을 사용할 수 있도록 System Call이라는 함수를 제공한다.
API(Application Programming Interface)
프로그래밍 언어 별 운영체제에 맞는 API를 구현하여 운영체제의 시스템 콜 호출 시 API를 이용한다.
즉, API는 시스템콜을 해석하여 Shell에 전달하기 위한 역할을 한다.
- Application에서 운영체제의 기능이 필요한 경우 API를 이용해서 프로그램을 작성한다.
- 해당 API를 호출하면 운영체제가 제공하는 시스템 콜을 호출한다.
- 운영체제는 커널 모드로 변경 후 해당 명령을 실행한 뒤, Application으로 결과를 반환한다.
커널모드 : OS에서 중요한 처리를 할 때 사용하는 권한이다.
사용자 모드 : 응용 프로그램이 사용하는 경우의 권한이다.
운영체제의 역할
1. 시스템 자원 관리자
운영체제는 각 시스템 자원들을 관리한다.
- CPU : 각 프로그램이 CPU를 얼마나 사용할 지 결정
- Memory : 각 프로그램을 어느 주소에 할당할지 결정, 메모리 공간을 얼마나 확보해야 하는지 결정
- 저장 매체(SDD, HDD) : 데이터를 어디에 저장할지 결정
- I/O Device(입출력 장치) : 키보드, 마우스 등을 화면에 표시해 준다.
2. 사용자와 커뮤니케이션
사용자와 컴퓨터 간의 의사소통을 할 수 있도록 여러 인터페이스를 지원한다.
- 사용자 <-> 운영체제 간 소통을 위한 쉘(Shell)과 System Call 제공
- 사용자가 내린 명령을 해석하고 실행하여 컴퓨터 자원 조작
3. 응용 프로그램 제어
OS가 각 응용 프로그램의 권한과, 실행 여부를 결정한다.
'[ Computer Science ] > 운영체제' 카테고리의 다른 글
[CS / 운영체제] 컴퓨터 부팅(Booting) 과정 (0) | 2024.04.29 |
---|---|
[CS / 운영체제] 프로세스와 스레드, IPC, 멀티 스레드 (0) | 2024.03.24 |
운영체제 (Operating System)
User가 사용하는 응용 프로그램(Application)과 하드웨어 사이에서 동작하는 프로그램을 말한다.
Windows, MacOS, UNIX(Linux) 등이 운영체제에 해당된다.
OS는 더 상세히 커널(kernel)을 의미하고, 이 커널에 여러 가지가 추가된 것을 운영체제라고 말한다.
💡운영체제는 사용자가 사용하는 응용 프로그램이 효율적으로, 적절하게 동작하도록 지원한다. 즉, 응용 프로그램이 요청하는 시스템 리소스를 효율적으로 분배하고, 지원하는 소프트웨어이다.
커널(kernel)
커널은 운영체제에서 가장 중요한 소프트웨어로, 컴퓨터의 자원들을 관리하는 역할을 한다. 하드웨어의 자원을 프로세스에 할당하고, 프로세스 제어, 메모리 관리, 시스템콜 수행 등을 수행한다. 즉, 하드웨어와 가장 가까운 아래 계층에 위치한 커널에 여러가지 소프트웨어 계층을 올린 것을 운영체제라고 한다.
컴퓨터 자원(System Resource) : CPU, Memory, File, Network, I/O device
커널의 5가지 관리자
- task 관리자 : 물리적 자원인 CPU를 추상 자원인 task로 제공
- memory 관리자 : 물리적 자원인 memory를 추상 자원인 page, segment로 제공
- file system 관리자 : 물리적 자원인 disk를 추상 자원인 file로 제공
- network 관리자 : 물리적 자원인 network device를 추상 자원인 socket으로 제공
- device driver 관리자 : 각종 외부 장치에 대한 접근을 제공 (마우스, 키보드, 프린터, GPU 등)
커널은 오직 컴퓨터 자원만 담당하기 때문에, User와의 상호작용은 전혀 지원하지 않는다. 따라서 등장하는 것이 커널 이외의 Shell과 같은 시스템 프로그램이다.
커널은 사용자가 hardware에 접근하고 통신하기 위한 중간 다리 역할을 한다.
쉘(Shell)
쉘은 사용자가 운영체제의 기능을 조작할 수 있도록 인터페이스를 제공하는 응용 프로그램이다.
조작 방법에 따라 CLI와 GUI로 나눌 수 있다.
- CLI(Command-Line-Interface, 터미널 환경) : 타이핑으로만 조작할 수 있는 쉘이다.
- GUI(Graphical User Interface) : 그래픽으로 구성된 쉘이다.
- 대표적인 쉘(Shell)로 리눅스의 bash가 있다.
시스템 콜(System Call)
운영체제의 기능을 사용할 수 있도록 하는 명령 또는 함수이다.
- 커널과 쉘 사이에 소통을 하기 위한 인터페이스이다.
- 운영체제는 운영체제의 여러 기능들을 사용할 수 있도록 System Call이라는 함수를 제공한다.
API(Application Programming Interface)
프로그래밍 언어 별 운영체제에 맞는 API를 구현하여 운영체제의 시스템 콜 호출 시 API를 이용한다.
즉, API는 시스템콜을 해석하여 Shell에 전달하기 위한 역할을 한다.
- Application에서 운영체제의 기능이 필요한 경우 API를 이용해서 프로그램을 작성한다.
- 해당 API를 호출하면 운영체제가 제공하는 시스템 콜을 호출한다.
- 운영체제는 커널 모드로 변경 후 해당 명령을 실행한 뒤, Application으로 결과를 반환한다.
커널모드 : OS에서 중요한 처리를 할 때 사용하는 권한이다.
사용자 모드 : 응용 프로그램이 사용하는 경우의 권한이다.
운영체제의 역할
1. 시스템 자원 관리자
운영체제는 각 시스템 자원들을 관리한다.
- CPU : 각 프로그램이 CPU를 얼마나 사용할 지 결정
- Memory : 각 프로그램을 어느 주소에 할당할지 결정, 메모리 공간을 얼마나 확보해야 하는지 결정
- 저장 매체(SDD, HDD) : 데이터를 어디에 저장할지 결정
- I/O Device(입출력 장치) : 키보드, 마우스 등을 화면에 표시해 준다.
2. 사용자와 커뮤니케이션
사용자와 컴퓨터 간의 의사소통을 할 수 있도록 여러 인터페이스를 지원한다.
- 사용자 <-> 운영체제 간 소통을 위한 쉘(Shell)과 System Call 제공
- 사용자가 내린 명령을 해석하고 실행하여 컴퓨터 자원 조작
3. 응용 프로그램 제어
OS가 각 응용 프로그램의 권한과, 실행 여부를 결정한다.
'[ Computer Science ] > 운영체제' 카테고리의 다른 글
[CS / 운영체제] 컴퓨터 부팅(Booting) 과정 (0) | 2024.04.29 |
---|---|
[CS / 운영체제] 프로세스와 스레드, IPC, 멀티 스레드 (0) | 2024.03.24 |