운영체제
-
오픈소스 운영체제운영체제/개념 2020. 6. 11. 23:38
오픈소스 운영체제란 컴파일된 이진 형태가 아닌 소스 코드 형태로 받을 수 있는 운영체제를 말한다. 대표적으로 Linux는 가장 유명한 오픈소스 운영체제이며 이와 반대로 Microsoft의 Windows 는 철저한 비공개 소스 방식의 운영체제이다. Apple의 Mac OS X 와 iOS 운영체제는 Darwin 오픈소스 커널과 비공개 소스를 혼합형 운영체제이다. 소스 코드로 부터 한 시스템에서 실행 가능한 이진코드를 생성할 수 있으며 이 이진코드를 역공학(reverse engineering) 을 통하여 소스코드를 얻어내는 작업은 만만치 않게 어려운 작업이다. 역사로 보면 컴퓨팅 초창기(1950년 대) 에는 많은 수의 소프트웨어가 오픈소스 형식이였다. 이후 컴퓨터나 소프트웨어 회사들은 인증된 컴퓨터나 돈을 지..
-
계산 환경운영체제/개념 2020. 6. 11. 00:50
운영체제가 동작하는 다양한 환경을 포스팅한다. 전통적 계산 전통적이라고 말하는 비교적 가까운 과거 몇년전의 전형적인 사무실 환경은 네트워크에 연결된 PC들과 파일 그리고 프린트 서비스를 제공하는 서버들로 구성되었다. 원격 접근은 흔하지 않으며 이동성은 랩탑을 사용했으며 많은 회사에서 대형 컴퓨터의 터미널로 연결하여 사용했다. 또한 배치 또는 대화형 방식으로 시스템이 이루어져있었으며 배치 시스템은 파일이나 다른 데이터 출처로부터 미리 정해진 입력을 가지고 대형작업을 처리하고 대화형 방식 시스템은 다중 사용자들이 이용하기 위해 타이머와 스케줄링 알고리즘을 이용해 시스템 시간을 나누었다. 다시말해 각 사용자마다 시간대를 나누어 계산작업을 할 수 있었다는 이야기이다. 오늘날에는 네트워크 환경의 발전과 인터넷 연..
-
보호와 보안 그리고 커널 자료구조운영체제/개념 2020. 6. 10. 00:24
컴퓨터 시스템이 다수의 사용자를 가지며 다수의 프로세스의 병렬 수행을 허용한다면 데이터 접근은 반드시 규제 되어야함을 원칙으로 한다. 보호 보호(protection) 이란 컴퓨터 시스템이 정의한 자원에 대해 프로그램, 프로세스, 사용자들의 접근을 제어하는 기법이다. 보호로 인해서 서브 시스템간에 잠재적인 오류를 검출해서 전체적인 시스템의 신뢰성을 증가시킬 수 있는 특징이 있으며 보호되지 않는 자원은 권한이 없거나 무자격 사용자에 의해 사용(혹은 오용) 되는 것을 방지 할 수 없다. 따라서 보호 지향 시스템은 허가 받은 사용자와 그렇지 않은 사용자를 구별하는 방법을 제공하는데 다음 기회에 포스팅 하겠다. 보안 컴퓨터시스템이 충분한 보호 기능을 가지고 있더라도 여전히 고장나거나 부적절한 접근을 허용할 수도 ..
-
프로세스. 메모리. 저장장치. 관리운영체제/개념 2020. 6. 8. 23:55
프로세스 관리 프로세스란 '실행 중인 프로그램' 이라고 한다. 컴파일러와 같은 하나의 멀티테스킹 사용자 프로그램은 하나의 프로세스가 된다. 예를 들어 pc 에서 한 사용자에 의해 수행되는 한글 프로세싱 프로그램도 프로세스가 되고, 출력을 프린트로 보내는 것(시스템 태스크)도 하나의 프로세스가 되는 것이다. 중요한 것은 프로그램 그 자체가 프로세스가 아니라는 것이다. 디스크에 저장된 파일의 내용과 같이 수동적 개체일 뿐이다. 프로세스는 수행할 명령을 지정하는 프로그램 카운터(programcounter)를 가진 능동적인 개체이다. 다음은 프로세스의 특징이다. - 프로세스는 자신의 일을 수행하기 위해 cpu 시간, 메모리, 파일, 입출력 장치등의 자원을 필요로 한다. - 자원은 프로세스가 생성될 때 제공될수도..
-
운영체제 연산운영체제/개념 2020. 6. 6. 02:11
운영체제 개념 포스팅중에 2번째로 올린 내용은 운영체제의 구동방식이 인터럽트 라는 것을 언급했었다. 또한 cpu가 처리해야할 어떤 작업은 '사건'이라는 것에 의해 인터럽트(또는 트랩)를 발생시키며 신호를 보낸다. 컴퓨터 시스템(하드웨어, 소프트웨어)의 자원을 사용하는 주체가 운영체제와 사용자가 있다고 가정하에 컴퓨터 시스템은 적절하고 안정적인 동작을 취해야 하며 그 방법으로는 다음이 존재한다. 이중연산모드 운영체제의 적절한 동작을 보장하기 위해 운영체제 코드와 사용자 정의 코드를 구분하여 실행할 수 있는 하드웨어 기능이다. 다시 말해 두개의 분리된 연산 모드 (커널모드 or 사용자모드) 로 나누어 비트를 할당한다 커널은 0, 사용자는 1 이라는 구분을 지어 놓고 사용자가 특정 프로세스를 실행함으로써 시스..
-
운영체제 구조운영체제/개념 2020. 6. 5. 01:08
운영체제는 다양한 발전 방향을 따라 구성이 되었기 때문에 운영체제마다 내부 구조는 다양하다 그럼에도 운영체제 사이에는 많은 공통점이 있다 그중 하나가 '다중 프로그래밍' 이다. 다중 프로그래밍 한명의 사용자가 여러 프로그램을 동시에 실행시키게 하는 기술이다. 해야할 작업들(프로그램)은 디스크 작업 풀에 유지 되고 있다가 스케줄링에 따라 메모리에 부분적으로 작업이 등록이 된다 이때 작업들을 프로세스라고 한다 메모리에 등록된 작업들 중 cpu는 하나의 작업을 실행하는 방법으로 다중 프로그램을 구현한다. 굳이 따지자면 cpu에서 작업을 1개씩 처리하는데 다중 프로그램이라고 말하는 이유는 무엇일까? 우리가 익숙한 단어인 멀티태스킹(multi-tasking) 은 다중 프로그램의 논리적 확장이라고 말할 수 있는데 ..
-
컴퓨터 시스템 구조운영체제/개념 2020. 6. 4. 00:14
컴퓨터 시스템은 다양한 방식으로 분류 하는데 그중에서 '범용 처리기'의 개수에 다라 분류하여 컴퓨터 시스템 구조를 살펴보겠다. 단일 처리기 시스템 Single-Processor Systems 시스템에 하나의 처리기를 사용할 때 사용하는 명칭이다. 사용자 프로세스의 명령어, 범용 명령어 집합을 실행할 수 있는 하나의 주 cpu 를 가지는 것이 특징이다. 특수 목적의 전용 처리기를 가지고 있는것이 특징일 수 있으며 처리기는 디스크, 키보드, 그래픽제어기 같은 특정 장치를 처리하는 경우도 있고 대형컴퓨터의 시스템 구성요소들간의 빠른 데이터를 전송할 수 있는 입출력 처리하는 경우도 있다. 이 처리기들은 운영체제에 의해 관리되기도 한다. (처리기는 cpu 나 마이크로프로세서) 운영체제는 태스크에 대한 정보를 보내..
-
컴퓨터 시스템 구성운영체제/개념 2020. 6. 3. 00:58
이전 포스터에서 컴퓨터 시스템은 대체로 하드웨어, 운영체제, 응용프로그램, 사용자 라고 했다. 이번 포스터는 컴퓨터 시스템의 구조와 관련한 여러 부분을 살펴보고자 한다. 컴퓨터 시스템 연산 오늘날 범용 컴퓨터 시스템은 하나 이상의 cpu와 다수의 장치 제어들로 구성되어 있으며 공용 버스로 연결된다. 이 버스를 통해서 '메모리 제어기'가 질서있는 접근을 통해 공용 메모리에 접근을 시킨다. 시스템 구동 부터 연산(요청처리) 까지 과정 컴퓨터가 구동을 시작하려면(전원on) 실행시킬 초기 프로그램이 필요한데 이를 '부트스트랩 프로그램' 이라고 한다. 전형적으로 읽기전용 메모리 ROM 이나 쓰기까지 가능한 EEPROM 에 저장이 되며 펌웨어라고 알려져 있다. 부트스트랩 프로그램은 cpu 레지스터, 장치 제어기, ..