분류 전체보기 91

[Chapter 4] 개념 이해를 위한 운영체제 [교착상태 - 교착상태 원인]

교착상태는 다중 프로그래밍 환경에서 효율적인 자원 관리를 위해 자원을 공유하면서 병행적으로 실행하기 때문에 발생한다. 일반적으로 프로세스는 다음과 같은 순서로 자원으로 사용한다.요청(request)프로세스는 시스템 호출을 통하여 사용하고자 하는 자원 할당을 운영체제에게 요청한다. 운영체제는 가능한 자원을 요청한 프로세스에게 할당해 준다.만약 요청한 자원이 다른 프로세스에 의해 사용중일 경우 프로세스는 대기 상태에서 기다리게 된다.사용(usage)프로세스는 할당받은 자원을 사용한다.해제(release)프로세스는 자원을 사용한 후 시스템 호출을 통하여 운영체제에게 자원 해제를 요청한다.프로세스의 교착상태가 발생하는 근본적인 원인은 다중 프로그래밍을 지원하는 운영체제에서 네 가지 조건을 동시에 만족시키면서 자..

카테고리 없음 2025.02.26

[Chapter 4] 개념 이해를 위한 운영체제 [교착상태 - 개요]

다중 프로그래밍을 지원하는 운영체제에서 여러 개의 프로세스들은 제한된 자원들을 공유하여 사용하게 된다. 프로세스가 어떤 자원을 사용하고자 할 경우 프로세스는 그 자원의 할당을 운영체제에게 요청한다. 운영 체제는 요청된 자원이 사용 가능하면 그 자원을 요청한 프로세스에게 즉시 할당해 주지만 그 자원이 다른 프로세스에 의해 점유되어 있으면 요청한 프로세스를 대기 상태에서 기다리도록 한다. 이렇게 대기 상태로 전환된 프로세스가 무한정 기다리게 될 경우가 발생할 수도 있다. 자원 A, B가 프로세스 1, 2에게 각각 할당된 상태에서 프로세스 1, 2가 자원 B, A의 할당을 각각 요청하게 되면 프로세스 1, 2는 무한정 기다리게 된다.이와 같이 다중 프로그래밍 환경에서 프로세스가 결코 발생하지 않을 특정 사건을..

CS/운영체제 2025.02.26

[Chapter 3] 개념 이해를 위한 운영체제 [병행성 - 리눅스 병행성]

스레드프로세스 내부에서 생성된 스래드들은 그 프로세스에게 할당된 모든 자원을 서로 공유하면서 병행적으로 실행한다.리눅스에서 전역 변수로 선언된 메모리 공간은 스래드들의 공유 메모리로 사용된다.따라서 스래드 함수 내부에서 전역 변수를 접근하는 부분이 임계 영역에 해당되기 때문에 공유 자원을 접근하는 임계 영역에 대한 스래드 간의 상호 배제 및 동기화 기법이 요구된다.#include#include#includeint count = 0;void *thread(void *unused){int i, j;for(i = 0; i pthread_create()를 이용해 10개의 스래드를 생성한다. 10개의 스래드들은 전역 변수(count)의 값을 1씩 증가 및 감소시키는 동일한 스래드 함수(*thread())를 병행적..

CS/운영체제 2025.02.25

[Chapter 3] 개념 이해를 위한 운영체제 [병행성 - 프로세스 간 통신]

프로세스 간 통신(IPC: Interprocess Communication)은 서로 다른 프로세스 끼리 데이터를 주고 받는 것이다. 프로세스 간 통신을 위해선 기본적으로 공유 메모리와 공유메모리에 대한 상호 배제적 접근을 위한 동기화 기법이 요구된다. 운영체제에 따라 다양한 형태의 IPC 기법이 지원되고 있지만 공유 메모리를 어느 주소 공간에 확보하느냐에 따라 근본적인 차이가 있다. 모든 프로세스는 서로 다른 사용자 영역을 가지고 있지만 운영체제 영역은 공유하고 있음을 유의해야 한다. 프로세스 간 통신을 위한 공유 메모리를 사용자 영역 혹은 운영체제 영역을 사용할 수 있다. 사용자 영역을 공유 메모리로 사용할 경우에는 별도의 동기화 기법이 요구된다. 반면 운영체제 영역을 공유 메모리로 사용할 경우에는 동..

CS/운영체제 2025.02.25

[Chapter 3] 개념 이해를 위한 운영체제 [병행성 - 임계 영역]

프로세스의 영역 중에서 공유 자원을 접근하는 코드 영역을 임계 영역"(critical section)" 이라고 부르며, 어떤 프로세스가 이 영역을 실행하고 있을 때 그 프로세스가 "임계 영역에 있다"고 말한다.ex) 공유 변수(buffer, counter)를 접근하는 코드 영역이 임계 영역에 해당되며, 생산자 프로세스의 counter = counter+1 문장이 실행되고 있을 때 생산자 프로세스가 "임계 영역에 있다"고 말한다. 마찬가지로 소비자 프로세스의 counter = counter-1 문장이 실행되고 있을 때 소비자 프로세스가 임계 영역에 있다"고 말한다. 주의할 점 모든 프로세스가 임계 영역을 가지고 있는 것은 아니다. 그러나 자원을 공유하면서 병해적으로 실행되는 프로세스들은 반드시 임계 영역을..

CS/운영체제 2025.02.24

[Chapter 3] 개념 이해를 위한 운영체제 [병행성 - 개요]

다중 프로그래밍 환경에서 실제로 실행 중인 프로세스는 하나이지만 다수의 프로세스들이 동시에 실행되고 있는 것처럼 보인다. 마찬가지로 다중 스레딩 환경에서도 실제로 실행중인 스레드는 하나이지만 다수의 스래드들이 동시에 실행되고 있는 것처럼 보인다. 이와 같은 환경에서 다수의 프로세스 혹은 스래드들이 동시에 실행되는 것을 프로세스 혹은 스래드의 "병행성(concurrency)"라고 부른다. 다중 프로그래밍 환경에서 다수의 프로세스들이 어떤 자원을 공유하면서 병행적으로 실행할 경우, 상호 영향을 미치게 되기 때문에 프로세스의 실행 결과 값이 달라질 수 있다. 마찬가지로 스래딩 환경에서도 동일한 프로세스에서 생성된 스래드들은 그 프로세스에게 할당된 자원들을 공유하면서 병렬적으로 실행되기 때문에 상호 영향을 미치..

CS/운영체제 2025.02.24

[Chapter 2] 개념 이해를 위한 운영체제 [프로세스]

프로세스프로세스는 컴퓨터 시스템 내부의 생명체와 같은 것으로 흔히 "컴퓨터 시스템이 살아있다."함은 컴퓨터 시스템 내부에 최소한 하나의 프로세스가 존재함을 의미한다. 이러한 프로세스 개념은 운영체제를 이해하는데 매우 중요하다.프로세스는 1960년대 멀티태스킹(Multi-tasking) 시스템의 효시인 멀틱스 시스템(Multics System)을 개발하면서 처음 사용된 용어로써 오늘날에는 테스크(task) 혹은 스레드(thread) 개념과 함께 사용되고 있다. 사전적으로 프로세스는 "어떤 일이 시작되어 끝날 때 까지 단계별로 진행되는 일련의 과정"을 의미한다. 유의할 점은 프로세스를 '처리' 혹은 '과정'이라고 번역하여 사용하지 않고 그냥 프로세스라고 부르며 CPU와 같은 처리기를 일걷는 한 사전적 의미를..

CS/운영체제 2025.02.20

[Chapter 1] 개념 이해를 위한 운영체제 [운영체제]

개요운영체제란 컴퓨터 시스템에서 실행되고 있는 가장 기본적인 소프트웨어 중의 하나로써 컴퓨터 시스템을 사용해본 누구나 운영체제를 접해본 경험이 있다. 그럼에도 불구하고 운영체제를 명확하게 정의하기란 쉽지 않다. 왜냐하면 "운영체제란 이런 것이다"라고 정의된 후에 운영체제가 나타난 것이 아니고 컴퓨터 시스템을 보다 효율적이고 편리하게 이용할 목적으로 개발된 단순 프로그램에서 출발하여 복잡하고 다양한 형태의 프로그램으로 발전해 오고 있기 때문이다. 또한 운영체제는 하드웨어와 사용자 혹은 응용 프로그램 사이에 위치하고 있으며 사용자들은 주로 응용 프로그램을 통하여 컴퓨터 시스템을 사용하기 때문에 운영체제 존재 자체를 인지하지 못할 수 있다.일반적으로 운영 체제는 응용 프로그램의 실행을 제어하고 컴퓨터 시스템의..

CS/운영체제 2025.02.20

[Chapter 17] 암호화와 네트워크 보안 (보안 프로토콜)

보안 프로토콜의 개요인터넷은 전 세계적으로 연결된 거대한 통신망으로, 데이터 전달 과정에서 여러 호스트와 매체를 통과한다 .이 과정에서 다양한 보안 문제에 직면할 수 있다.특히 중간에 위치한 라우터들의 보안 등급이 낮게 설정된 경우에는 위험에 노출될 가능성이 더 높다.이러한 위협 요소에는 전송 데이터를 중간에서 감청하거나 임의로 변경하는 경우, 원격 호스트의 데이터에 위협을 가하는 등 직접적으로 특정 시스템의 내부에 침입하는 경우, 과도한 트래픽을 발생시켜 특정 호스트의 통신을 방해하는 경우 등이 있다.감청감청은 허가받지 않은 자가 직간접적인 방법으로 전송 중인 데이터를 얻는 것이다. 또한 불법으로 획득한 정보를 변경한 후 이를 통신 과정에서 다시 입력함으로써, 송수신 호스트의 통신 내용을 왜곡하는 것도..

CS/Network 2025.02.19

[Chapter 17] 암호화와 네트워크 보안 (암호화 시스템)

암호문은 기본적으로 대체 암호화와 위치 암호화 방법을 적절히 조합하여 작성한다. 최근에는 고성능 컴퓨터가 많아져 연산속도가 빨라지기 때문에 알고리즘의 복잡도를 높이는 방식으로 암호화한다. 대표적으로는 DES와 RSA 알고리즘이 있다.DES 알고리즘DES 알고리즘은 암호문을 작성할 때 사용하는 암호키와 암호문을 해독할 때 사용하는 해독키가 같다. 따라서 이 키는 절대로 외부에 유출되지 않도록 관리해야 하며, 비밀키(Secret Key)라 부른다. 또한 양쪽이 동일 키를 사용한다고 해서 대칭키(Symmetric Key)라고도 한다.이처럼 외부 사용자에게 노출되지 않아야 하는 암호키로 암호화하는 알고리즘을 비공개키 알고리즘이라 한다.비공개키 방식의 DES(Data Encryption Standard)알고리즘은..

CS/Network 2025.02.19