취업 준비/운영체제 8

프로세스간 커뮤니케이션(IPC)

프로세스간 커뮤니케이션 IPC (Inter Process Communication) 프로세스 들이 서로의 공간을 쉽게 접근할 수 있다면 프로세스 데이터/코드가 바뀔 수 있으니 프로세스는 다른 프로세스의 공간을 접근 할 수 없다. 프로세스간의 통신방법이다. 왜 필요 할까? 성능을 높이기 위해 여러 프로세스를 만들어서 동시 실행 (CPU core 8~16개에서 동시에 실행 후 모아서 작업하기) 프로세스간 상태 확인 및 데이터 송수신이 필요하다. fork() 시스템콜 본인과 똑같은 프로세스를 하나더 생성한다. 원본이 부모이고 생선된것이 자식이다. 프로세스를 fork()해서 여러 프로세스를 동시에 실행시킬 수 있다. (병렬 처리) 1~10000까지 더하기 fork()함수로 10개 프로세스 만들어서 각각 1~10..

프로세스와 컨텍스트 스위칭

프로세스와 컨텍스트 스위칭 프로세스 구조 STACK 임시 데이터(함수 호출, 로컬 변수등) Return Address를 STACK에 저장하고 함수에서 필요한 공간을 할당한 뒤 나중에 다시 지운다. EBP 레지스터 현재 STACK의 최상단을 가리키는 주소가 들어가 있다. 함수가 함수를 부르다가 문제가 생기면 어떤 시점에 어떤 함수를 실행 시키다가 문제가 생긴지 알기 어려우므로 존재한다. EAX 레지스터 Return 값을 가지고 있다. HEAP c언어의 malloc()과 같이 동적으로 특정 공간 할당 Python은 생각하지 않아도 됨;; DATA 변수/초기화된 데이터 CODE에 필요한 저장공간 공간의 크기가 정해져 있다. BSS 초기화 되지 않은 전역 변수 DATA 초기값이 있는 전역 변수 CODE(text..

인터럽트

이벤트와 인터럽트(Interrupt) CPU가 프로그램을 실행하고 있을 때, IO등의 장치나 예외 상황이 발생하여 처리가 필요한 경우에 CPU가 해당 처리를 할 수 있도록 CPU에 알려줘야 함 CPU가 실행하는 명령은 하나인데 다른 장치와 어떻게 커뮤니케이션을 할까? 파일읽기를 하는동안 프로세스가 block상태가 되는데 읽기가 끝나면 인터럽트가 알려준다. 프로세스 running중에 스케쥴러가 이를 중단을 시키는 선점형 스케쥴러를 구현하기 위해 필요하다. 이벤트가 발생하고 처리하는것은 운영체제가 한다. ex 입출력 하드웨어 등의 장치 이슈 발생 파일 처리가 끝났다는것을 운영체제에 알려주기 운영체제는 해당 프로세스를 block state에서 ready state로 프로세스 상태 변경하기 에외 상황 0으로 나..

프로세스 상태와 스케쥴링

멀티프로그래밍과 Wait 멀티 프로그래밍 CPU 활용도를 극대화 하는 스케쥴링 알고리즘 Wait 간단한 저장매체로부터 파일 읽기를 기다리는 시간 프로세스 상태 프로세스 상태 실행 가능상태인것을 실행 시켜야 하니 스케쥴러가 현재 프로세스의 상태를 알아야 한다. 실행가능 (ready) CPU에서 실행 가능 상태 대기 (block / waiting) 특정 이벤트 발생 대기 상태 프린팅이 다 되었따! 저장매체에 파일을 읽어달라고하면 읽는동안 block상태가 됨(읽는거 기다림) 실행중(running state) 현재 CPU에서 실행 상태 종료(exit) 사용하던 자원같은거도 돌려놓는 시간이 필요함 프로세스 상태간 관계 Running → Block → Ready ← → Running Running상태에서 프린팅을 ..

스케쥴링 알고리즘

프로세스(process) 프로세스의 실행을 관리하는 주체는 CPU다. 작업, task, job이라는 용어로 사용되기도 함 메모리에 올려져서, 실행중인 프로그램 응용프로그램 응용프로그램 ≠ 프로세스 여러개의 프로세스로 이뤄어질 수 있음 하나의 응용 프로그램은 여러 개의 프로세스가 상호작용을 하면서 실행 됨 C/C++ 하나로 만들면 하나의 프로세스 이곘지만 보통 이러진 않음 스케쥴러 프로세스 실행을 관리한다. 스케쥴링 알고리즘 어느 순서대로 프로세스를 실행시킬까? 목표 시분할 시스템 예 : 프로세스 응답 시간을 가능한 짧게 하는것 (대기시간을 짧게하자) 멀티 프로그래밍 예 : CPU활용도를 최대로 높여서, 프로세스를 빨리 실행 FIFO 프로세스가 저장매체를 읽는 다든지, 프린팅을 한다든지 하는 작업 없이, ..

프로세스 스케쥴링 기초

배치처리 시스템 작동하던 프로그램이 끝나면 자동으로 다음 응용 프로그램이 이어서 실행될 수 있도록 하는 시스템 Queue와 비슷함(FIFO) 배치 처리 시스템과 시분할 시스템/ 멀티 프로그래밍 여러 프로그램을 순차적으로 실행시킬 수 있도록 해달라(배치) 어떤 프로그램은 실행이 너무 많이 걸려서, 다른 프로그램이 실행하는데 시간을 많이 기다려야 한다. MP3 음악(응용프로그램1)을 들으면서, 문서 작성(응용프로그램2)을 하고 싶어요 동시성 불가능 여러 사용자가 동시에 하나의 컴퓨터를 쓰려면? 다중 사용자 지원 불가능 시분할 시스템/ 멀티 프로그래밍 시분할 시스템 다중 사용자 지원을 위해 컴퓨터 응답 시간을 최소화 하는 시스템 멀티 태스킹 단일 CPU에서 , 여러 응용 프로그램이 동시에 실행되는 것 처럼 보..

운영체제의 구조

컴퓨터 구조 컴퓨터를 키면? → 운영체제는 Memory에 올라간다. 응용프로그램, 운영체제, 컴퓨터 하드웨어(시스템 리소스) 관계 도서관으로 비유 운영체제 : 도서관 응용 프로그램 : 시민 컴퓨터 하드웨어 : 책 운영 체제의 역할 시민은 도서관에 원하는 책(자원)을 요청함 도서관은 적절한 책을 찾아서, 시민에게 빌려준다. 시민이 기한이 다 되면, 도서관이 해당 책을 회수한다. 운영체제는 응용프로그램이 요청하는 메모리를 허가하고, 분배한다. CPU 시간을 제공한다. IO Devices 사용을 허가/제어한다. 운영체제는 사용자 인터페이스 제공 쉘(Shell) : 이거도 응용 프로그램 껍데기 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램 쉘은 터미널환경(CLI)와 , GUI..

운영체제와 응용 프로그램

운영체제 컴퓨팅 사고가 고도로 발달한 사람들이 만든 소프트 웨어 컴퓨터 사이언스(전공) 필수 과목 컴퓨터 구조가 컴퓨터 하드웨어 Scratch면 운영체제는 컴퓨터 소프트웨어 + 하드웨어 Scratch하는 것이다. 자료구조, 알고리즘 큐, 스택과 활용하여 효율적으로 짬 대표적인 운영체제 Windows OS, Mac OS, 그리고 UNIX(유닉스) UNIX OS UNIX 계열 OS UNIX와 사용법이나, OS구조가 유사한 OS LINUX(리눅스) OS 프로그래머, 전공자는 필수로 알아야 한다. OS는 만들기가 쉽지 않다 T max OS , Windows OS 시연중에 꺼짐( 많은 준비를 했지만) 운영체제 역할 1. 시스템 자원 관리자 Operating System(OS) 시스템 자원(System Resour..