메모리 관리
·
컴퓨터과학/운영체제
메모리 관리란 다중 프로그래밍을 위한 다수의 프로세스를 수용하기 위해서 주기억 장치를 동적으로 분할하는 것을 말한다.이를 위해서는 5가지의 요구조건이 있다.1) 재배치 : 프로세스가 스왑되었다가 다시 재배치 될때 주소를 새로 부여한 다음에 위치시킨다.2) 보호 : 다른 프로세스로부터 간섭을 보호한다.3) 공유 : 필수적인 부분만 침해하지 않는다면 융통성있게 접근을 허용한다.4) 논리적 구성 : 모듈단위로 구성한다. 독립적으로 이루어질 수 있도록 -> 뒤에서 설명할 세그먼테이션5) 물리적 구성 : 주기억장치와 보조기억 장치 사이를 스왑하는 것메모리 관리기법메모리 관리 기법에는 1) 연속 메모리 관리와 2) 불연속 메모리 관리가 있다.그리고 연속 메모리 관리에는 1) 고정 분할 기법과 2) 동적 분할 기법이..
병행성 : 교착상태와 기아
·
컴퓨터과학/운영체제
교착상태는 데드락이라고도 한다.무엇이냐면, 2개 이상의 프로세스들이 공유자원!! 에 대해서 경쟁하거나 통신, 즉 둘이 동시에 접근하려고 할 때 발생한다.나도 사용하고, 너도 사용하려고 둘다 기다리면서 무한정 대기~~~> 로 이루어짐. 위의 예제의 경우 Pocess P가 A를 가지고 B를 요청하고 있다. Q는 B를 가지고 A를 요청하고 있다.근데 B와 A모두 각각 P와 Q가 이미 가지고 있으므로 둘은 무한정 대기하게 된다. 방출을 위해서는 서로거를 가져와야만 하는데 서로 가지고만 있기 때문에.해결을 위해서는 P가 A를 사용후 먼저 종료를 해줘야만 Q가 사용가능하므로 위의 예시처럼 변경하여 사용이 가능하다. 교착상태의 다른 예제를 살펴보도록 하겠다.총 사용할 수 있는 메모리의 크기는 200이다.근데 P1에서..
운영체제 병행성 : 상호배제와 동기화
·
컴퓨터과학/운영체제
멀티프로세스란?-> 프로세스/쓰레드 관리를 위한 운영체제 설계의 중심!!1) 멀티프로그래밍 : 다수의 프로세스가 메모리 상에 올라와서 CPU를 번갈아가며 사용 및 실행한다.2) 멀티프로세싱 : 여러 개의 CPU 실행3) 분산프로세싱 : 서로 다른 머신에서 연산을 수행 Serial processing-> 하나의 프로세스가 싲가되면, 독점적으로 모든 컴퓨터의 자원(CPU, 메모리, I/O장치)을 사용하는 것. 사용이 다 끝나야만 다음 프로세스 실행이 가능하다.Concurrent processing(병행처리)-> 여러개의 프로세스를 동시에 실행한다. *인터리빙 방식과 오버래핑 방식으로 나뉜다.1) Interleaving(인터리빙) 방식-> CPU가 1개일 때, 여러 작업이 CPU를 번갈아가면서 사용한다.2) ..
프로세스를 생성하는 fork()함수를 알아보자
·
컴퓨터과학/운영체제
The fork system call#include #include pid_t fork(void);– Return: • Parent process: the process id of the child process (non zero) • Child process: 0fork() 함수에는 Parent값과 child값이 있다. Parent 값은 child 값을 리턴받는다. child는 0을 받는다.(child인지 식별 목적)• Programming tip – Use the return value of the fork system call if(pid==0){ ... /* child process executes here */ } else { ... /* parent process executes ..
What is 쓰레드?
·
컴퓨터과학/운영체제
운영체제 OS에서 프로세스는 태스크(task)와 쓰레드(thread)라는 두 특성으로 분리되어 관리된다.Why use? -> 컴퓨터시스템 자원을 효율적으로 사용하고 응용 프로그램의 성능을 향상 시키기 위해서!!1. 태스크(Task)는 무엇인가?- 자원 컨테이너(Resource Container) : 사용자 정보와 시스템 정보등을 저장합니다.- 멀티태스킹 : 하나의 프로세스는 여러개의 태스크를 포함할 수 있다.2. 쓰레드(Thread)란 무엇인가?- 코드를 실행하는 단위이다. 실행에 필요한 정보들을 포함한다.- 멀티태스킹 : 하나의 프로세스 내에 여러 개의 쓰레드가 동시에 실행될 수 있다. -> 처리속도 향상*멀티태스킹이란 한 번에 2가지 이상의 일을 동시에 처리하는 것으로 다중작업이라고 이해하면 편하다!..
운영체제가 뭔데? 이름부터 어려운게 거부감 드는데?
·
컴퓨터과학/운영체제
운영체제 흔히들 OS(Operating System)이라고 표현한다.OS는 모르겠고 나는 오예스를 좋아한다.운영체제는 OS라고 표현하는데 영어로 Operating System으로 동작 시스템이란 뜻이다.쉽게말해 컴퓨터가 어떻게 동작하는지를 배우는 학문이다.컴퓨터가 어떻게 동작하는지 궁금하지 않은가? 궁금하지 않다. 그래도 어쩌겠는가 취업은 해야지.컴퓨터의 동작을 이해하기 위해서는 컴퓨터의 구성 요소로 뭐가 있는지 알아야 한다.핵심적인 것만 소개하도록 하겠다.중앙처리장치, 처리기, CPU(Central Processing Unit) : 컴퓨터의 뇌다. 사람의 뇌가 생각해서 계산하고, 행동을 제어하지 않는가? 마찬가지다.주기억장치, 메인메모리(main memory) : 기본 저장장치라고 생각하면 된다. 휘발..