전체 글 188

TIL 정리_75

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 프로세스 간 협력 독립적 프로세스 프로세스는 각자의 주소 공간을 가지고 수행되므로 원칙적으로 하나의 프로세스는 다른 프로세스의 수행에 영향을 끼지치 못한다 협력 프로세스 프로세스 협력 메커니즘을 통해 하나의 프로세스가 다른 프로세스의 수행에 영향을 미칠 수 있다 프로세스 간 협력 메커니즘 (IPC :Interprocess Communication) 메시지를 전달하는 방법 message passing : 커널을 통해 메시지 전달 주소 공간을 공유하는 방법 shared memory : 서로 다른 프로세스 간에도 일부 주소 공간을 공유하게 하는 shared memor..

TIL 정리_74

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 프로세스의 생성(Process Management) 부모 프로세스가 자식 프로세스를 생성한다 -> 프로세스의 문맥을 복제 생성 프로세스의 트리(계층 구조) 형성 Copy-on-write(COW) 운영체제 메모리관리 파일 시스템에 자주 쓰이는 용어로 write가 발생했을 때 복사를 한다는 의미이다 그 이전까지는 부모의 문맥을 공유한다 -> 효율적인 운영체제에서는 주소 공간만을 공유하여 사용한다 프로세스는 자원을 필요로 한다 자원을 받는 방식 운영체제로부터 받는다 부모와 공유한다 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하..

TIL 정리_73

Thread 프로세스 내부에 CPU 수행 단위가 여러 개 존재하는 것을 말한다 주소공간의 구조 (Thread 추가) Thread1의 Stack/ Thread2의 Stack / Thread3의 Stack data code Thread의 구성 program counter register set stack space -> program counter가 코드의 어느 부분을 가리키는지, register의 값이 어떻게 되는지를 stack에 쌓는다 Thread가 동료 쓰레드와 공유하는 부분(task) code section data section OS resources 정통적인 개념의 heavyweight proces는 하나의 Thread를 가지고 있는 task라고 볼 수 있다 프로세스 안에 쓰레드를 여러 개 두는 ..

TIL 정리_72

Process Control Block PCB 운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보이다 다음의 구성 요소를 가진다(구조체로 유지) 1. OS 관리상 사용하는 정보 - Process state, Process ID - scheduling information, priority 2 CPU 수행 관련 하드웨어 값 - Program counter, registers 3 메모리 관련 - Code, data, stack 4. 파일 관련 문맥 교환(Context switch) Cpu를 한 프로세스에서 다른 프로세스로 넘겨주는 과정이다 프로세스 A -> 프로세스 B CPU가 다른 프로세스에게 넘어갈 때 운영체제는 다음을 수행한다 - CPU를 내어주는 프로세스의 상태를 그 프로세스의 PCB에 ..

TIL 정리_71

커널 주소 공간 커널의 주소 공간 또한 code, data, stack으로 구성되어 있다 커널의 코드 / code 시스템 콜, 인터럽트 처리 코드 자원 관리를 위한 코드 편리한 서비스 제공을 위한 코드가 존재한다 커널의 데이터 / data 하드웨어를 관리한다 하드웨어마다 자료구조가 존재한다 프로세스를 관리하기 위한 자료구조인 PCB가 존재한다 커널의 스택 / stack 사용자 프로세스마다 커널 스택이 따로 존재한다 사용자 프로그램이 사용하는 함수 사용자 정의 함수 자신의 프로그램에서 정의한 함수를 말한다 라이브러리 함수 자신의 프로그램에서 정의하지 않고 갖다 쓴 함수 자신의 프로그램의 실행 파일에 포함되어있다 -> 사용자 정의 함수와 라이브러리 함수는 프로세스의 주소 공간에서 사용된다 커널 함수 운영체제..

TIL 정리_70(운영체제)

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 동기식 입출력과 비동기식 입출력 동기식 입출력(Synchronous I/O) I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어간다 구현방법 I/O가 끝날 때까지 CPU를 낭비시킴 매 시점 하나의 I/O만 이렁날 수 있다 2. I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗는다. I/O처리를 기다리는 중에 그 프로그램을 줄 세우고, 다른 프로그램에게 CPU를 준다 비동기식 입출력(asynchronous I/O) I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어간다 두 경우 모두 I/O의 ..

TIL 정리_69(자료구조)

*TIL 66에서 정리한 자료구조 강의 이어서 정리 데이터를 저장하기 위해 배열이 존재한다 전화번호를 키로 사용한다고 가정했을때, 값은 전화번호와 연관된 사람 key, phone, numbers 등이 있다 전화번호를 키로 쓰기에 너무 길다고 판단할 수 있다 -> 전화번호를 받는 해시함수를 구현 -> 전화번호를 세 숫자로 잘라서 합한다고 가정하고 키 값을 생성한다 생기는 문제점 다른 사람의 번호를 추가 할 때, 두 개의 키가 같은 배열안에 위치한다 -> 충돌이 발생 해시 충돌 서로 다른 값을 가진 키가 일치하는 경우를 말한다 배열에 두 키가 같은 공간에 들어갈 수 없기 때문에 충돌이 발생한다 folding : 긴 숫자를 작은 숫자로 분해한다 -> 작은 숫자들의 합을 사용할 수 있다 숫자가 무작위가 아니기 ..

TIL 정리_68

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 운영체제 용어 Multitasking : 여러 작업이 동시에 실행된다 Multiprogramming : 메모리에 여러 프로그램이 동시에 올라가는 방식이다 Time sharing : CPU의 시간을 분할하여 나누어 쓴다는 의미로 자주 사용된다 Multiprocess -> 위의 용어들은 컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻한다 Multiprocessor : 하나의 컴퓨터에 CPU가 여러 개 붙어 있음을 의미한다 예) CPU가 여러 개 있는 고성능 시스템 운영체제의 예시 유닉스(UNIX) : 대형 컴퓨터를 위한 것 - 코드의 대부분을 C언어로 작성한다 //..

TIL 정리_67(운영체제)

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각 www.kocw.net 운영체제 강의를 듣고 정리한 내용입니다 운영체제 운영체제(Operating System, OS) 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층을 말한다. 사용자 | 사용자 각종 소프트웨어 | 사용자 운영체제 컴퓨터 하드웨어 의 구조를 가지고 있다 커널 : 운영체제의 핵심 부분으로 메모리에 상주하는 부분을 말한다 광의의 운영체제 : ..

TIL 정리_66

연결리스트는 수용량이 정해져 있지 않고, 스택과 큐를 사용하기위해 만들 수 있다 리스트 내에 무언가를 찾고 싶을때의 시간복잡도 O(n)이다 -> 비효율적이다 리스트 내의 데이터를 조회할 때 유용한 데이터 구조를 사용해야 한다. Hash : 해시 여러 상황에서 데이터를 빠르게 추가하거나 제거하도록 한 데이터 구조이다 또한 데이터를 빠르게 찾을 수 있는 자료구조가 해시이다 키와 값을 가지고 있으며 키가 주어지면 바로 연관된 값을 찾을 수 있다 Hash 메서드 add() : 요소를 추가한다 remove() : 요소를 제거한다 lookup/find/contains : 어떠한 요소를 찾고자 할때 사용한다 change : 특정 요소를 수정하고 싶을 때 사용한다 엔트리를 불러오는 메서드 : all entries 모든..