일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Leetcode
- 맥주
- github pages
- 하이트진로
- 머신러닝
- zookeeper
- API Gateway
- ddd
- finops
- serverless
- HEXO
- amqp
- 회고
- LAMBDA
- 2020년
- 메세지큐
- billing
- Zappa
- AWS
- AWSKRUG
- React
- 아키텍처
- Kafka
- 도메인 주도 설계
- S3
- CloudWatch
- 노션
- Notion
- 알고리즘
- 백준
- Today
- Total
목록프로그래밍/OS (4)
인생은 고통의 연속
동기화 원칙backgroud공유된 데이터에 대한 동시 접근으로 인해 데이터 불일치 발생일관된 데이터 관리를 위해서 협업 프로세스의 순서있는 실행을 보장하는 메커니즘이 필요하다critical section 문제순수한 sw 솔루션hw에서 도움을 받을 수 있다.busy waiting 없는 동기화semaphore(세마포어)mutex lockcondition variables 한정 버퍼(bounded buffer) = 생산자-소비자 문제(producer-consumer problem)만약에 프로세스 2개가 shared data의 변수들을 공유한다고 했을때위의 코드 중 atomic operation은 conter++; 과 conter--; 이다.※ atomic operation : interruption 없이 전체..
프로세스간 커뮤니케이션프로세스간 커뮤니케이션이 필요한 이유는 다음과 같다.정보 공유(파일...)연산 속도 증가모듈성보호멀티테스킹의 편리함 프로세스간 커뮤니케이션 메커니즘은 크게 메모리 공유와 메세지 전달 방식 2가지가 있다. 메세지 전달(Message Passing)대표적인 메세지 전달 방식은 pipes, sockets, remote procedure calls가 있다직/간접 커뮤니케이션 - 프로세스 or ports고정 or 변화가능한 사이즈copy or reference로 보내기automatic or explicit bufferingblocking or non-blocking(send or receive) Threads전용 주소 공간 없이 실행 중인 프로그램OS에서 memory protection은 프..
유저/커널 모드(user/kernel mode)부팅 후, 인터럽트, 시스템콜, exception이 발생하면 커널 모드로 전환한다. 즉, 커널모드는 모든 시스템 메모리와 모든 CPU 인스트럭션에 접근이 허가된 프로세서의 실행 모드를 말한다. 유저모드는 유저가 접근할 수 있는 영역을 제한적으로 두고 시스템 리소스에 함부로 침범하지 못하는 모드 시스템콜(system call) vs 인터럽트(interrupt)시스템콜 : OS의 커널이 제공하는 서비스에 대해 응용프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스기능사용자 모드에 있는 응용 프로그램이 커널의 기능을 사용할 수 있도록 한다.시스템 호출을 하면 사용자 모드에서 커널 모드로 바뀐다.커널에서 시스템 호출을 처리하면 커널 모드에서 사용자 모드로 돌아가..
OS란? 컴퓨터 시스템 구조 기본적으로 컴퓨터 시스템은 하드웨어 위에 시스템 소프트웨어(OS, Window System 등)이 동작한다. 그래서 OS개발자가 software API를 만들면 어플리케이션 개발자는 그걸 사용한다.(abstraction) 여기서 OS(Operating System)은 하드웨어를 추상화시킨 소프트웨어를 말한다. 구체적으로는 하드웨어의 디테일한건 숨기고 다른 사람이 쉽게 쓸 수 있도록 구현한 소프트웨어다. OS는 또한 프로세스, 메모리, 디스크, 네트워크 등 리소스를 관리한다. 프로세스(Processes) vs 프로그램(Program)프로세스란 동작하는 프로그램의 인스턴스를 말한다.프로그램은 실행할 수 있는 파일을 말한다.(프로세스 != 프로그램) 운영체제(OS) vs 커널(ke..