본문 바로가기

Operating System

(10)
리눅스 프로세스 메모리 구조 및 여러 기초정보 (ORANG 참조 ) env , etc , argv , argc 또한 stack의 일부분임. kernel : 커널영역은 사용자의 접근을 못하도록 할당해 놓았다.OS의 시스템 코드가 로드되는 부분으로 우리가 건들 수 없다. Stack : 프로그램에서 사용되는 각종 환경변수 , 파라미터 , 리턴값 , 지역변수 등의 정보를 담고 있다. user space ( libc ) : 프로그램이 내부에서 사용하는 라이브러리 함수들과 관련된 공유라이브러리 파일이 적재되는 영역 Heap : 동적 할당되는 변수의 데이터가 위치하는 영역 Bss , Data : 프로그램에서 사용하는 전역변수 , 정적변수 등 각종 변수들이 실제로 위치하는 메모리 영역. 변수가 초기화되면 데이터 영역 , 초기화되지 않으면 bss 영역에 있다. 그리..
컴퓨터의 작동 과정 컴퓨터 시스템에서 CPU와 가 장치들은 서로 연결되어 메모리를 공유한다.각각의 장치마다 장치 제어기가 작업을 도와주며 모든 기계들은 동기화되어 적절히 작동된다. 컴퓨터의 부팅 과정- 전원이 켜질 떄 ROM( Read Only Memory )에 저장된 초기 프로그램을 실행한다.- 초기 프로그램은 메모리 , CPU 레지스터 등을 초기화시킨다.- 이후 운영체제를 찾아서 메모리에 적재한다.- 운영체제는 첫번째 프로세스를 즉시 실행한다.- 인터럽트가 발생하면서 CPU가 각종 작업을 처리한다. 인터럽트는 하드웨어와 소프트웨어 모두 CPU에 발생시킬수 있고 일반적으로 입출력 연산이 종료되었을 때 , 예외가 발생했을 때 , 운영체제의 다양한 서비스를 요구할때 등 다양한 이유로 발생할 수 있다. 인터럽트가 발생했을 떄 ..
다양한 시스템 다중 처리 시스템 ( Multiprocessor System ) : CPU가 여러개인 시스템을 의미하며 각각의 CPU들이 아주 밀접하게 통신을 하는 구조를 가지고 있다 . 당연히 성능이 하나의 CPU가 있을 때보다 더 좋으며 하나의 CPU가 고장나더라도속도가 느려질 뿐 시스템은 정상적으로 작동한다. ( 신뢰성 , 처리속도 UP ) 분산 처리 시스템 ( Distributed Processing System ) : 네트워크를 이용해 동시에 작업을 처리하는 시스템으로 각각 CPU들은 메모리를 공유 하지 않는다 , 당연히 적절한 자원 공유로 계산 속도와 신뢰성 증가(ex : 클라이언트 & 서버 시스템 , P2P 시스템 , 클러스터 시스템 ) 실시간 처리 시스템 ( Real-Time System ) : 실시간 처..
시스템의 발전 시스템의 발전에서 주요히 뽑히는 부분은 일괄처리 시스템에서 다중 프로그램 & 시분할 시스템으로의 발전 일괄처리 시스템 ( Batch System ) : 초기 컴퓨터 동작 방식으로써 물리적으로 콘솔에서 수행을 하던 방식에 사용하던 시스템.초기 운영체제는 즉시적으로 데이터를 처리 할 수 있는 여건 또한 갖추지 못했다. 일정 시간 동안 수집된 변동 자료를 컴퓨터의 입력 자료로 만들었다가 필요한 시점에 이 자료들을 일괄 입력하여 실행한 후 그 결과를 일괄 출력시켜 주는 방식 다만 , 기계적인 입출력 장치의 속도가 CPU 같은 전자적인 장치의 속도보다 느리기 때문에 CPU가 Idle 상태인 경우가 많음 -> CPU 활용면에서 비효율적 다중프로그래밍 시스템 ( Multi-Programming System ): CP..
운영체제 개요 보충 운영체제 : 컴퓨터의 사용자와 하드웨어 사이에서 중개자 역할을 해주는 프로그램 운영체제의 역사 : 수작업 -> 단일 프로그래밍 -> 다중 프로그래밍 & 시분할 -> 모바일 OS & 실시간 시스템 운영체제의 목적 : 1. 사용자가 컴퓨터를 편리하게 사용하는 것 2. 컴퓨터 하드웨어가 효율적으로 사용되는 것 컴퓨터 시스템의 처리 구조 USER↑ ↓Application ↑ ↓Operation System ↑ ↓Hardware 위와 같이 하드웨어 ( 컴퓨터 ) 와 사용자 사이에 개입하여 상호적으로 컴퓨터가 실행되는 동안 항상 수행되는 프로그램으로 이용을 돕는 역할의 Operation System 사용자의 관점에서 볼때 좋은 OS는 사용의 용이성 , 자원 이용의 극대화에 중점을 둔 OS라 할수있다.시스템의 관점에..
시분할 처리 시스템 , 분산 처리 시스템 시분할 처리 시스템 : 각각의 작업들에게 일정한 CPU 시간만큼을 차례로 할당하는 라운드 로빈 스케줄링을 사용하는 방식으로써 , 각각의 컴퓨터 사용자들은 실제로 자신만이 컴퓨털르 사용하고 있는 듯한 느낌을 주는 시스템. - 여러 사람이 공동으로 CPU 사용이 가능- 자원 제어에 대한 대부분의 책임을 OS에 전가시킴으로써 OS를 복잡하게함- OS는 기억장치에 복수 개의 프로그램을 동시에 유지하는 문제나 프로그램을 위한 주기억장치나 보조기억장치를 관리하고 ㅈ어하는 책임을 가져야한다. 즉 , 기억 장치 관리 기법이나 디스크 스케줄링 정책 필요 -여러 사용자에 대한 공정한 자원 공유를 보장하기 위해 어떤 사용자에게 CPU를 사용하게 할 것이지에 대한 CPU 할당 시간을 정의하여 스케줄링 해야함.- 실행 중인 프..
다중 처리 시스템 다중 처리 시스템 : 프로그램을 수행할 수 있는 CPU를 2개 이상 두고 각각 그 업무를 분담하여 처리하는 방식 장단점 정리 - CPU를 여러개 사용하여 프로그램의 처리 속도와 신뢰성을 높임 - 한쪽의 CPU가 고장나더라도 여분의 CPU를 이용하여 업무처리를 계속 할수있기 때문에 시스템의 안정성이 높음- OS는 여러 CPU간의 기억 장치 공유를 어떻게 지원할 것이며 , 여러 CPU의 사용을 어떻게 스케쥴링 할것인가를 결정해야됨 - 신뢰성과 병행 계산 , 최적의 연결 기법 같은 자원을 요구하는 CPU들간의 경쟁을 제어하는 문제들 또한 고려해야됨 다중 처리 시스템과 비슷한 시스템 운용 방법으로는 듀플렉스 와 듀얼 시스템이 있다. 듀플렉스 시스템 - 시스템의 안정성을 고려하여 한쪽의 CPU가 가동중일 때에는 ..
다중 프로그래밍 시스템 다중 프로그래밍 시스템 : 컴퓨터의 주기억장치 상에 2개 이상의 프로그램이 적재되어 , 하나의 프로그램이 CPU를 사용하다가 입출력 동작을 하게되면 상대적으로 느린 입출력 장치를 수행시키는 동안 CPU로 하여금 다른 프로그램을 수행하여 컴퓨터의 효율을 증대시키고자 하는 방법. 이때 다중 프로그래밍이 가능하게 되려면 입출력 작업을 독립적으로 수행할 수 있는 처리기가 있어야 하며 , 보통 이를 I/O Channel이라고 부른다. 따라서 다중 프로그래밍 시스템은 컴퓨터의 느린 입출력 속도와 처리속도가 빠른 CPU사이의 속도 차이를 이용하여 컴퓨터의 이용도 , 처리능력을 증대시키기위한 방안으로 아래와 같은 장단점을 갖는다. - CPU 1개인 컴퓨터 시스템에서 주기억장치에 여러개의 프로그램이 존재하여 멀티태스킹 ..