일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- Kinematics
- final
- IK
- ImageProcessing #ComputerGraphics #ComutationalPhotography #PoissinImageEditing #Siggraph2003
- C++11
- CCD
- 상속
- Modern C++
- ComputerGraphics
- Override
- c++
- IKSolver
- C++ #개발자 #Modern_C++ #스마트포인터 #Smart_Pointer #unique_ptr # shared_ptr # weak_ptr
- InverseKinematics
- FABIK
- TwoBoneIK
- FABRIK
- 클래스
- Today
- Total
DevNote
OS Instruction 본문
What is OS?
OS (Operating System)는 메모리와 프로세스, 소프트웨어와 하드웨어를 관리하는 중추 프로그램이다. 우리가 컴퓨터를 사용하면서 대부분 응용 프로그램들을 사용할 것이고, 이 때, 일어나는 동작들을 간략히 말하면 아래와 같다.
- 거의 항상 여러 프로그램(프로세스)이 동시에 실행되고 있다.
- 이 때, 프로그램 실행을 위해 CPU와 메모리, 저장장치에 엑세스 해야한다.
- CPU는 실제 실행을 위한 연산을 수행하고, 연산 수행을 위해 필요한 정보들은 메모리에 담기며, 실제로 실행되어야할 프로그램은 저장장치에 기록되어있다.
- 실제로 프로그램이 실행되기 위해, 각 하드웨어들이 연동되고, 이런 동작들에 대한 전반적인 관리를 담당하는 것이 OS 다.
결국, OS는 유저가 컴퓨터를 편리하게 사용할 수 있는 환경을 제공하는 시스템 소프트웨어다.
OS Main Jobs
위에서 언급했던 응용 프로그램 실행을 위해 필요한 여러 동작들을 수행하기 위해, OS는 몇 가지 주요한 기능을 가지고 있다.
프로세스 관리, 저장장치 관리, 네트워크 관리, 사용자 관리, 장치 드라이버 관리
이 다섯 가지가 그 기능들이다.
1. 프로세스 관리 : 컴퓨터에서 돌아가고 있는 응용 프로그램들에 대한 관리기능이다. 즉, CPU를 관리하는 기능이다. 현재 CPU가 연산을 수행해야할 프로세스를 결정하고, 프로세스간 CPU 점유와 공유 메모리 접근에 대한 교통정리를 담당한다.
2. 저장장치 관리 : 우리가 흔히 말하는 램과 하드를 관리하는 기능이다.
- 램 (RAM, Random Access Memory) : CPU의 연산을 비롯한 모든 동작에 대한 내용이 담기는 메모리이다. 이는 프로세스에 할당하는 메모리 영역에 대한 관리를 한다는 의미이기도 하다.
- 하드 (HDD, SSD) : 우리가 흔히 접할 수 있는 파일 형태로 데이터를 저장하는데, 이 때, 이 파일들이 저장되는 곳이라고 보면된다.
3. 네트워크 관리 : 인터넷에 연결하거나, 응용 프로그램이 네트워크가 필요하다면, OS가 네트워크 프로토콜을 지원해야한다. 이 때, 외부망과 연결되기 때문에 OS는 보안을 추가적으로 담당하기도 한다.
4. 사용자 관리 : 우리가 사용하는 PC는 한 사람의 것이 아니다, 즉 하나의 PC를 여러 사람이 사용할 수도 있기때문에 멀티 유저 환경을 제공한다. 파일이나 시스템에 접근할 수 있는 권한을 관리하는 것이 해당 기능의 핵심이다.
5. 장치 드라이버 관리 : 장치 드라이버는 특정 장치(하드웨어)에 대해 관리/제어 목적으로 필요한 프로그램이다. 필요성에 대한 이야기를 좀 하자면, 이 세상에 존재하는 모든 하드웨어가 통일된 형태의 명령어를 사용하는 것이 아니기 때문에 드라이버라는 번역기가 필요하다고 생각하면 된다.
(작성중...)