목록Computer Science/OS (5)
without haste but without rest
1. 운영체제 하드웨어는 스스로 작동할 수가 없어서, 하드웨어를 다루는 소프트웨어가 필요한데 이것이 운영체제이고 펌웨어라고도 한다. 따라서 운영체제의 목적은 하드웨어 리소스를 효율적으로 활용할 수 있도록 돕는 소프트웨어다. 크게 커널과 인터페이스로 구성되어 있다. 2. 커널과 인터페이스 커널: 운영체제의 핵심 기능들을 모아둔 것 인터페이스: 커널에 명령을 전달하고 실행 결과를 돌려주는 기능을 제공한다. 커널과 인터페이스로 구분이 되는 이유는 유저가 커널을 보호하기 위해서 직접 접근하는 것을 차단하고 시스템콜 같이 미리 정의된 형태로만 사용하게 했다. 프로그래밍 랭귀지의 open이나 print 함수도 인터페이스로 시스템콜에 해당한다. (하드웨어의 인터페이스는 드라이버) 3. 프로그램과 프로세스 프로그램은 ..
1. 배치처리 시스템 - 프로세스 순차 실행 2. 시분할 시스템 - 어플리케이션이 CPU를 점유하는 시간을 잘개 쪼개어 실행될 수 있도록 하는 시스템 3. 멀티 태스킹 - 단일 CPU에서 여러 응용프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템 멀티 태스킹과 멀티 프로세싱 1. 멀티 태스킹 - 단일CPU 2. 멀티 프로세싱 - 다중 CPU에 하나의 프로그램을 병렬로 실행해서 실행 속도를 극대화함 프로세스 스케쥴링 멀티 프로그래밍 - 최대한 CPU를 많이 활용하도록 하는 시스템 목적 (1). 시간 대비 CPU 활용도를 높이자 (2). 응용 프로그램을 짧으느 시간 안에 실행 완료시킬 수 있다. 멀티 프로그래밍이 굳이 필요한 이유? - 응용 프로그램은 온전히 CPU를 전부 사용하기 보다는 다른 작업을 ..
운영체제는 사용자 인터페이스를 제공한다. -> 쉘 쉘은 CLI, GUI 환경이 있다. 시스템 콜(시스템 호출 인터페이스) (요청서) 운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수 API 내부에는 시스템콜을 호출하는 형태로 만들어지는 경우가 대부분이다. 시스템콜의 복잡성을 완화하기 위해 각 언어는 API, Library형태로 시스템콜을 사용할 수 있도록 제공한다. 해당 API, Library를 활용하여 응용 프로그램을 개발한다. 핵심 운영체제 (커널) 운영체제를 만든다면? 1. 운영체제 개발 (kernel) 2. 시스템 콜 개발 3. C API (Library) 4. Shell 프로그램 표준적인 시스템콜을 정의하는 문서가 있다. - POSIX API (유닉스 계열은 해당 ..
운영체제는 시스템 자원을 관리한다. 하드웨어는 스스로 작동할 수 없다. 즉 하드웨어 자원을 관리할 소프트웨어가 필요하다. 해당 역할을 하는 게 운영체제다. 운영체제는 특정 프로그램이 CPU를 얼마나 사용할지 그리고 각 프로그램을 Memory의 어느 주소에 저장할지와 같은 하드웨어 자원의 사용률을 관리한다. 운영체제와 응용프로그램간의 관계 어플리케이션 관리 시스템 자원 관리 사용자와 컴퓨터간의 커뮤니케이션 지원 운영체제의 목표 사용자가 사용하는 프로그램이 효율적으로 적절하게 동작하도록 지원한다. 즉 운영체제는 응용 프로그램이 요청하는 시스템 리소스를 효율적으로 분배하고 지원하는 소프트웨어다.
Reference - https://apophis0.tistory.com/48 나는 리눅스 사용환경이 VM이라 새로 설정하는 일이 자주 생긴다. 항상 VDI, VHD, VMDK 설정의 차이점이 무엇일까 궁금하던 참에 괜찮게 정리한 자료가 있어서 참고해서 요약한다. VDI (Vitural Disk Image) Oracle VM에서만 사용가능한 포맷 VHD (Virtual Hard Disk) Oracle VM, MS의 Hyper-V, 시트릭스의 Xen에서 구동가능한 포맷 VMDK (Virtual Machine Disk) Oracle VM, VMware 에서 구동가능한 포맷