일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 2019카카오코테
- 가운데를말해요
- 카카오코테
- 냅색알고리즘
- 코드트리
- 백준괄호
- 컴퓨터비전
- 이것이자바다확인문제
- 스파르타코딩클럽
- java
- KT포트포워딩
- 백준가운데를말해요
- 확인문제
- 백준10828
- 백준
- 웹개발기초
- BOJ
- 운영체제
- 백준온라인저지
- BOJ1655
- 백준9012
- 코테
- 코딩테스트실력진단
- 딥러닝
- 이것이자바다9장
- 백준스택
- 이것이자바다
- 백준평범한배낭
- 윤곽선검출
- 합성곱연산
- Today
- Total
목록📀 운영체제 (23)
코딩하는 락커

3.4 프로세스 간 통신 Interprocess Communication(IPC) 운영 체제 내에서 실행되는 병행 프로세스들은 독립적이거나 협력적 독립적인 프로세스: 프로세스가 시스템에서 실행 중인 다른 프로세스들과 데이터를 공유하지 않는 프로세스 협력적인 프로세스: 프로세스가 시스템에서 실행 중인 다른 프로세스들과 데이터를 공유하는 프로세스 협력적 프로세스들은 데이터를 보내거나 받을 수 있는 프로세스 간 통신(Interprocess communication, IPC) 기법이 필요함 프로세스 통신 모델 공유 메모리shared memory 모델 협력 프로세스들에 의해 공유되는 메모리 영역이 구축됨 메시지 전달message passing 모델 통신이 협력 프로세스들 사이에 교환되는 메시지를 통하여 이루어짐 ..

3.3 프로세스 실습 실습1 #include #include int main() { pid_t pid; pid = fork(); printf("hello, process! %d\n", pid); return 0; } child process의 pid: 29809 (부모 프로세스가 출력) fork(): fork() 시스템 콜을 하면 parent 프로세스의 주소 공간을 그대로 복사하고 부모 프로세스는 계속 실행됨. 실습 2 #include #include int main() { pid_t pid; pid = fork(); if (pid > 0) wait(NULL); printf("hello, process! %d\n", pid); return 0; } wait(): wait() 시스템콜을 호출하면 부모 프로..

3.1 프로세스 개념 프로세스 실행중인 프로그램 CPU의 작업 단위 CPU, 메모리를 사용할 수 있어야 하며 File, I/O Device 등의 리소스를 사용할 수 있어야함 실행 파일이 메모리에 적재될 때 프로그램은 프로세스가 됨 실행 파일 메모리 적재 방법: 아이콘 더블클릭 / 명령어 라인상에서 파일 이름 입력 프로세스의 메모리 배치는 여러 섹션으로 구분되어 있음 텍스트 섹션: 실행 코드 데이터 섹션: 전역 변수 힙 섹션: 프로그램 실행 중에 동적으로 할당되는 메모리 (ex. malloc) 스택 섹션: 함수를 호출할 때 임시 데이터 저장장소 (ex. 함수 매개변수, 복귀주소 및 지역 변수) C 프로그램의 메모리 적재 텍스트 섹션: a.out (소스 실행파일) 데이터 섹션 initialized data:..

Introduction 운영체제 컴퓨터 하드웨어를 관리하는 소프트웨어 응용 프로그램을 위한 기반을 제공 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중재자 역할을 함 1.1 운영체제가 할 일 컴퓨터 시스템의 4가지 구분 하드웨어 운영체제 응용 프로그램 사용자 운영체제는 컴퓨터 시스템이 동작할 때 이들 자원을 적절하게 사용할 수 있는 방법을 제공함 운영체제의 정의 컴퓨터에서 항상 실행되는 프로그램(커널) 커널 + 커널의 일부가 아닌 시스템 프로그램 + 시스템 작동과 관련있지 않은 모든 프로그램을 포함하는 응용 프로그램 1.2 컴퓨터 시스템의 구성 일반적인 컴퓨터 시스템은 하나 이상의 CPU와 구성요소와 공유 메모리 사이의 액세스를 제공하는 공통 버스를 통해 연결된 여러 장치 컨트롤러로 구성됨 각 장치 컨트롤러..

CPU-I/O Burst Cycle 1. 프로세스는 CPU execution + I/O wait의 cycle로 구성됨 2. CPU burst: CPU에 의해 직접 수행되는 작업의 부분(CPU execution) 3. I/O burts: CPU에 의하지 않고 일어나는 작업의 부분(I/O execution) 4. 일반적으로 프로세스는 많은 수의 짧은 CPU burst들, 혹은 적은 수의 긴 CPU burst들로 구성되며, 이들의 편중에 따라 I/O-bound 프로그램과 CPU-bound 프로그램으로 나눌 수 있음 5. I/O-bound 프로그램: 작업의 대부분이 I/O로 구성, CPU burst는 짧게 들어가 있음 6. CPU-bound 프로그램: 작업의 대부분이 CPU burst로 구성 7. CPU bur..

프로세스란? 1. 운영체제의 이해를 위한 기본 개념 2. 멀티프로그래밍(Multiprogramming)의 기본 단위 3. 스레드(thread)와 비교 필요 4. 정의: A program in execution(실행중인 프로그램), 컴파일러에 의해 프로그램을 실행파일로 컴파일 -> 로더에 의해 실행파일을 메모리에 탑재 -> 실행되는 순간 프로세스가 됨! 실생활에서의 프로세스 예 1. 프로세스는 “a sequence of snapshots”로 눈에 보이지 않음(Invisible). 그러나 관리가 이루어져야 한다. 2. 수행의 실재는 프로그램이 조작하고 있는 데이터의 상태(state) 시간에 대한 변화를 기반으로 프로세스를 관리한다 3. 데이터의 상태(state) 정보: 실행 위치(Program Counter..

운영체제가 해 주는 서비스 1. 컴퓨터 사용자를 위한 서비스 ① User Interface: ex) CLI, GUI ② Program 수행: 프로그램을 주메모리에 탑재 및 수행 ③ File 조작 및 관리: 파일 읽기/쓰기, 디렉토리 읽기/ 쓰기, 파일 생성, 제거, 변경, 보호 등 파일과 관련된 모든 동작 ④ 통신: 프로세스간 통신(IPC), 네트워크를 통한 컴퓨터 간의 통신 ⑤ 오류 탐지 및 처리 2. 자원 공유를 통해 시스템의 효율적인 동작을 위한 기능 ① 자원 할당(resource allocation): CPU, main memory, I/O device ② 보호 및 보안(protection & security) : 보호(protection) - 시스템이 보유하고 있는 모든 내부 자원에 대한 접근을..