
📌 단일 스레드와 멀티 스레드 1. 스레드 (Thread) - CPU 활용의 기본 단위. - 프로세스 내에서 프로그램 명령을 실행하는 기본 단위 - 스레드 ID, 프로그램 카운터, 레지스터 집합, 스택으로 구성. - 같은 프로세스에 속한 다른 스레드와 코드, 데이터 세션, open files 등의 운영체제 자원을 공유. 2. 단일 스레드 (Single Thread) - 프로세스 내에 제어 스레드가 1개. - 1개의 레지스터, 1개의 스택. [ 장점 ] - 자원을 공용화하지 않으므로 공용 자원 접근 통제가 불필요하다. - 콘텍스트 스위칭 작업 불필요하다. (순수한 오버헤드가 불필요) [ 단점 ] - 다수개의 CPU 활용이 불가능하다. ex. 워드 프로세스 작업할 때 키보드작업하거나 문법 체크하거나 모두 스..

📌 소켓 통신 소켓? - 커뮤니케이션을 하기 위한 통신의 극점 (end point) - IP 주소 및 Port 번호를 조합하여 식별 [ 서버 - 클라이언트 아키텍처를 사용 ] -> 서버는 특정 포트를 listen 하면서 클라이언트 요청에 대기 -> 요청을 받으면, 서버는 클라이언트 소켓으로부터 연결 요청을 수락함으로써 연결 완성. 📌 MSA? 마이크로 서비스 아키텍처 쉽게 말해서 자잘하게 서비스별로 아키텍쳐 구조로 잡고 모여 만든 큰 서비스 아키텍처 문제는 서로 다른 언어들(java, c, python 같은)로 만든 서비스들을 어떻게 한 서비스로 통합(연결) 하지? -> 소켓 통신한다면 하나하나 규격 맞춰야함 -> 불편함 -> 언어에 구애받지 않고 편하게 하나의 프로시저를 호출하자. -> 그 프로시저가 ..

📌 프로세스 간 통신 💡 목표 공유 메모리와 메시지 전달을 통한 프로세스 간 통신에 대해 이해하고 비교할 수 있다. 💡 개념 프로세스들은 독립적이거나 혹은 협력적인데, 협력 프로세스는 데이터 공유를 포함하여, 프로세스들에게 영향을 주거나 받음. 협력을 허용하는 환경을 제공하는 이유는 ✔️ 정보를 공유할 수 있고, ✔️ 계산을 가속화할 수 있으며, ✔️ 모듈 형태로 프로세스를 구성할 때 필요할 수 있고, ✔️ 개별 사용자들이 여러 프로세스들을 작업할 때 편리하게 활용할 수 있기 때문이다. 💡 IPC의 모델들 | (Inter Process Communication, IPC) : 프로세스들간의 통신 a) 공유 메모리 shared memory b) 메시지 전달 1. 공유 메모리 통신하는 프로세스들이 공유 메모리..

📌 프로세스의 연산 실행되는 동안 프로세스들은 여러개의 프로세스들을 생성한다. 이 때 생성하는 주체는 부모 프로세스, 새로운 프로세스는 자식 프로세스이다. 대부분의 운영체제는 고유의 프로세스 식별자 (pid)를 사용하여 프로세스를 구분한다. 프로세스가 자식 프로세스를 생성할 때 - 자식 프로세스는 운영체제에게 자원을 직접 얻을 수 있다. - 혹은 부모 프로세스가 가진 자원의 부분 집합만을 사용하도록 제한 -> 자바의 상속같은..! 프로세스가 새로운 프로세스를 생성할 때 - 부모 프로세스는 자식 프로세스와 동시에 실행. - 혹은 부모 프로세스는 자식 프로세스 전부/일부가 종료될 때까지 대기 📝 프로세스의 생성 흐름 1) fork() 시스템 콜로 새로운 프로세스(자식) 생성. (프로세스 혼자만으론 자식 프로..

📌 프로세스 📝 프로세스란? - 실행중인 프로그램. - 디스크에 저장된 실행 파일이 메모리에 적재될 때 비로소 프로세스가 된다. 📝 메모리 상에서의 프로세스 (프로세스의 주소 공간) 프로세스의 주소 공간은 크게 4 세션으로 구분된다. 텍스트 세션 : 실행코드 데이터 세션 : 전역 변수 힙 세션 : 프로그램 실행 시 동적으로 할당되는 메모리 스택 세션 : 함수 호출 시 임시 데이터 저장 (함수 매개변수, 반환 주소, 지역 변수) 💡 힙 영역 ? Heap 사용자가 관리할 수 있는, 관리해야하는 힙 영역. ex. 대용량 다운로드 사례가 발생하면,heap 영역에서 개발자는 메모리 영역을 크게 설정하여 OOM(out of memory)를 막을 수있음. 📝 프로세스 상태 별 설명 new : 프로세스 생성 중 run..

📌 운영체제의 서비스들 📝 사용자 편의성 1. 유저 인터페이스 (GUl / CLI /터치 스크린) 2. 프로그램 실행 3. I/O 수행 4. 파일 시스템 조작 5. 통신 - 동일하거나 다른 컴퓨터 시스템의 프로세스 사이의 통신 가능하게 함. 📝 효율적인 시스템 6. 리소스 할당 - 다수개의 사용자 혹은 일을 처리할 때, 각각의 리소스에게 적당한 할당을 진행. 7. 로깅 - 어떤 프로그램이 얼마나 많은/ 어떤 종류의 컴퓨터 자원을 사용했는지 계속 추적. 8. 보호와 보안 - 다수 사용자나 네트워크 구성된 시스템이 동시 처리시 서로 방해되지 않도록 함. 📌 운영체제의 동작 - 시스템 콜 (호출) 시스템 콜이란? 운영체제에 일을 요청하고 싶을 때 요청하는 방법, 수단 듀얼 모드 (커널 모드 + 사용자 모드) ..

1. 운영체제 (Operating System) 일반 컴퓨터나 노트북 전원을 키면 가장 먼저 만나게 되는 소프트웨어 필요성 1) 컴퓨터는 운영체제 없이 작동할까? 가능함. 2) 운영체제 있는 기계와 없는 기계의 차이는? * OS 없는 기계 만들 당시 구현한 기능만을 수행 *OS 있는 기계 컴퓨터 시스템을 사용하기 쉽게하고, 효율적으로 사용할 수 있도록 함. 정의 커널 + 시스템 프로그램 커널 : 컴퓨터에서 항상 실행되는 하나의 프로그램 시스템 프로그램 : 모든 프로그램을 포함한, 시스템 운영과 관련있는 운영 프로그램. 운영체제는 리소스 할당의 주체. - 모든 리소스를 관리하고 - 자원에 대한 충돌되는 요청 사이에서 리소스를 효율적으로 분배함. 운영체제는 제어 프로그램임. - 프로그램을 제어하고 오류 및 ..
- Total
- Today
- Yesterday
- 카카오API
- 국비지원
- 패스트캠퍼스강의
- 데이터베이스
- 채팅기능개발
- qjzl
- 자료구조
- be
- 백엔드
- 패스트캠퍼스
- 야놀자X패스트캠퍼스부트캠프
- 부트캠프
- 프로젝트후기
- boj
- Java
- 백엔드개발자
- #국비지원취업
- 과정중간회고
- 국비지원캠프
- 백준
- 자료구조 #스택 #큐 #덱 #선형자료구조
- 스터디후기
- 백엔드부트캠프
- 야놀자
- 그룹스터디
- TiL
- 커리어멘토링
- 국비지원취업
- 그룹스터디워크샵
- springboot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |