하나의 기능을 만들기 위해 게이트들을 조작해서 기능을 만들었습니다.이 당시 새로운 기능을 만든다는 것은, 기계를 새로 만드는 작업과 가까웠기 때문에, 너무나도 어려웠습니다.그래서 이러한 단점을 보완하고자 나온 것이 일괄 작업 시스템 ( 내장 프로그래밍 방식 ) 이 등장
운영체제를 2가지로 구분한다면→ 커널, 인터페이스로 구분이 가능합니다.운영체제를 3가지로 구분한다면→ 커널, 인터페이스, Device Driver 로 구분이 가능합니다. ( 어떻게 구분할지는 관점의 차이 )운영체제의 핵심 기능을 모아놓은 것응용 소프트웨어들은 커널에 요
응용 프로그램은 하드웨어에 직접적으로 접근할 수 없고, 반드시 운영체제를 통해 간접적으로 접근해야 합니다.왜 이렇게 계층적 구조로 만들었는지? 하고 생각해보면.. 바로 추상화 때문이라고 볼 수 있습니다.컴퓨터 필수장치 : CPU, 메모리 → 폰 노이만 구조CPU : 명
※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.산술논리 연산장치 ( Arithmetic Logic Unit, ALU )산술 연산, 논리 연산 수행제어장치 ( Control Unit )CPU 에서 명령어에 따른 작업 지시레지스터 ( Registe
※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.외부 장치들은 무언가 입력이 있거나 작업의 완료, 예외 상황 등이 발생하면 CPU 에게 자신의 상태에 대해 알려줍니다.예시키보드 / 마우스 조작네트워크의 패킷 수신, 저장 장치 입력 완료USB 장치
※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.동시에 여러 개의 명령을 처리하여 작업의 능률을 올리는 방식을 병렬 처리라고 합니다.참고) Concurrency ( 동시성 ) 과 Parallelism ( 병렬성 )Concurrency : 실제로는

프로그램 : 운영체제가 프로세스를 초기구동하는데 사용되는 파일프로세스 : 프로그램이 실행됨실행파일이 메모리에 로딩되어 실행되는 상태즉, 프로그램들은 메모리에 올라가야 실행될 수 있다습니다. ( 프로그램이 실행돼야 프로세스가 된다 라는 뜻! )CPU 에 의해 현재 실행되
※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.메모리 주소는 메모리내 위치를 식별하기 위한 식별자 역할을 합니다.이 공간을 물리 메모리 ( 주소 ) 라고도 합니다. ( 물리 주소 공간 == CPU BUS 의 크기에 의해 결정 == Word )만
※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.프로세스가 생성되는 경우들을 먼저 살펴보면..시스템 부팅과정에서 필요한 프로세스 생성사용자 로그인 후 사용자와 대화 ( 제어 ) 를 위한 프로세스 생성bash, explorer.exe, finder

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.유닉스의 모든 프로세스는 init 프로세스의 자식이 되어 트리 구조를 이룹니다.프로세스는 일반적으로 부모 - 자식 관계로 이루어집니다.PID 0,1,2 등의 몇몇 조상 프로세스를 제외한 모든 프로세
※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.프로세스 생성시 오버헤드가 크다는 단점이 존재하고, 프로세스 간 context switching 하는데도 오버헤드가 크다는 단점이 있습니다.또 프로세스간 통신을 하려고 하니, 통신을 하기 위한 별도

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.쓰레드 주소공간은, 쓰레드가 생성되고 실행되는 동안 접근 가능한 메모리 영역을 말하며, 프로세스의 주소 공간 내에 형성됩니다.일반 함수가 수직적인 관계라고 하면 ( 스택 )쓰레드는 side-by-s

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.Kernel - Level Thread운영체제가 커널에서 관리하는 쓰레드User - Level ThreadUser - Space 에서 관리하는 쓰레드커널 쓰레드 : 커널이 직접 생성하고 관리하는 쓰
※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.만약 멀티쓰레드 환경에서 fork() 시스템콜을 실행한다면..여러 쓰레드 중 한 쓰레드가 fork() 호출새로운 프로세스는 fork() 를 호출한 쓰레드만 복제한 쓰레드가 exec() 를 호출 →

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.일상 생활 속에서도 스케줄링이 존재합니다.컴퓨터 시스템 안에서도 역시 여러 스케줄링이 존재합니다.작업 스케줄링대기중인 배치 작업 중에서 메모리에 적재할 작업CPU 스케줄링프로세스 / 쓰레드 중 하나

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.쓰레드가 시스템 호출 끝에 I/O 를 요청하여 블록될 때 1\. 쓰레드를 블록 상태로 만들고 스케줄링 2\. CPU 의 활용률 향상 목적쓰레드가 자발적으로 CPU 를 반환할 때yield(

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.스케줄링 알고리즘을 평가하는 기준은 다양한 기준들이 존재합니다.그 중 대기 시간과 반환 시간을 중점적으로 살펴 볼 예정입니다.( 이것들이 빨라야 일반적으로 좋은 알고리즘! )평가 기준대기 시간 (

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.멀티 코어 시스템에서의 멀티쓰레딩은 아래 그림처럼 진행됩니다.이때 멀티코어에서는 스케줄링이 여러 CPU 에 걸쳐 발생하게 됩니다.원래 하나의 CPU 를 가질 때는 스케줄링을 통해 하나의 CPU 만

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.하나의 자원을 두고 여러 프로세스 ( 혹은 쓰레드 ) 가 공동으로 이용하는 변수, 메모리, 파일 등을 공유 자원이라고 합니다.공유자원은 공동으로 이용되기 때문에 누가 언제 데이터를 읽거나 쓰느냐에

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.상호배제 ( Mutual Exclusion ) 를 먼저 요약하자면, 임계 구역 ( Critical Section ) 을 어떤 방법을 써서 잠글 것인지에 대한 이야기입니다. 임계 구역을 잠금으로써,

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.상호배제가 되도록 만들어진 락 ( lock ) 활용동기화 대상이 1개일 때 사용락을 소유한 쓰레드만이 임계구역에 진입할 수 있음락을 소유하지 않은 쓰레드는 락이 풀릴 때 까지 밖에서 대기뮤텍스와 스

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.쓰레드의 동기화로 인해 높은 순위의 쓰레드가 낮은 순위의 쓰레드보다 늦게 스케줄링 되는 현상을 우선순위 역전 이라고 합니다.이 경우 실시간 시스템에서 큰 문제가 되는데, 우선순위가 높은 쓰레드가 늦

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.공유 버퍼를 사이에 두고, 생산자와 소비자간 공유버퍼를 문제없이 사용하도록 생산자와 소비자를 동기화시키는 문제를 생산자 - 소비자 문제 라고 합니다.생산자 : 데이터를 공급 ( Inqueue )소비

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.자원을 소유한 채, 모두 상대방이 소유한 자원을 기다리면서 무한 대기중인 상태를 교착상태라고 합니다.식사를 하기 위한 조건은 다음과 같습니다.5명의 철학자가 원탁에서 식사, 식사 시간은 서로 다를

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.다음 4가지 상황이 모두 허용되는 시스템은 언제든지 교착상태가 발생할 수 있습니다 ( Coffman Condition )상호 배제 ( Mutual Exclusion )각 자원은 한번에 하나의 프로세

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.운영체제에 의해 메모리 관리가 필요한 이유는 다음과 같습니다.메모리는 공유 자원메모리 보호메모리 용량 한계 극복메모리 효율성 증대먼저, 메모리의 공간은 항상 부족합니다.그리고 프로세스는 가능하면 많

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.메모리는 오직 주소값으로만 접근할 수 있습니다.이 주소는 2가지 관점으로 바라볼 수 있는데, 바로 물리 주소와 논리 / 가상 주소 입니다.물리 주소 ( physical address ) : 하드웨어

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.운영체제가 새 프로세스를 실행시키거나 실행 중인 프로세스가 메모리를 필요로 할 때, 물리 메모리를 할당해주어야 합니다.여기서 고민해보아야 할 점은, 메모리를 할당해주는 건 좋지만, 메모리 어디에,

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.모든 프로그램은 메모리에 올라와야 CPU 를 통해 실행할 수 있습니다.CPU 가 메모리를 읽을 때는 오로지 주소를 통해 접근하기 때문에, 정확한 주소가 필요합니다.만약 개발자가 시스템의 메모리 크기

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.페이징에선 가상 주소를 VA = <P, O> 로 표현합니다.VA ( Virtual Address ) : 가상 주소P ( Page number ) : 페이지 번호O 혹은 D ( Offset 혹은

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.페이지 테이블 관리는 쉬운 일이 아닙니다.하나의 시스템에 여러 개의 프로세스가 존재각 프로세스마다 페이지 테이블이 하나씩 존재하기 때문!메모리 관리자는 특정 프로세스가 실행될 때 마다 해당 페이지

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.메모리 접근 권한이란, 메모리의 특정 번지에 저장된 데이터를 사용할 수 있는권한을 의미합니다.읽기 ( read ), 쓰기 ( write ), 실행 ( execute ) 권한이 존재코드 영역자기 자신