일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPA
- Spring Boot
- Jenkins
- Kafka
- 백준
- SQL
- aws
- 코딩
- Spring
- feign
- 데이터베이스
- 자바
- 오라클
- retry
- Spring Cloud
- 쿼리
- 클라우드
- MST
- MVC
- 자료구조
- golang
- 운영체제
- DP
- 디자인 패턴
- 알고리즘
- db
- Intellj
- 페이징
- Spring Cloud Feign
- PL/SQL
- Today
- Total
목록IT/운영체제 (13)
justgo_developer
가상메모리: 한정된 물리 메모리의 한계를 극복하고자 디스크와 같은 느린 저장장치를 활용해, 더 많은 메모리를 활용할 수 있게 해 주는 것 Principle of Locality(지역성의 원리): 프로그램이 가장 최근에 접근했던 데이터를 다시 접근하거나,최근에 참조했던 데이터 근처의 주소를 참조하는 경향이 있음. *Principle of Locality라는 특성 덕분에 virtual memory가 효과적으로 운영 가능 Thrashing(쓰레싱): 너무 자주 페이지 교체가 일어나는 현상. 어떤 프로세스가 계속적으로 페이지 부재가 발생하여 프로세스의 처리시간보다 페이지 교체 시간이 더 많아 지는 현상 ■ Paging - simple paging 기법에 비해 page number에 해당하는 bit수가 많아졌다...
페이징(Paging) 페이지 - 가상메모리를 일정한 크기로 나눈 블록프레임 - 물리메모리를 일정한 크기로 나눈 블록 페이지 테이블(page table)-각 페이지에 대한 프레임위치를 가지고 있다.- 메모리 주소는 페이지 번호와 옵셋(offset)으로 구성된다. 페이징은 외부단편화가 없다.No external fragmentation - address : n+m bits- n : page number- m : offset Segmentation -가상메모리를 서로 크기가 다른 논리적 단위인 세그먼트로 분할하고 메모리를 할당하여 주소 변환을 한다.- 세그먼트번호와 옵셋(offset)으로 구성된다.- 모든 세그먼트들은 동일하기 않기 때문에 세그멘테이션기법은 동적분할과 비슷하다.- No internal frag..
memory partitioning - Fixed partitioning(고정분할): 시스템 설계 시 , main memory를 고정된 크기로 분할 프로그램 작을떄도 전체적인 부분을 차지한다. 내부단편화(internal fragmentation)이라고 한다.- Dynamic partitioning(동적분할): 프로세스 크기에 맞게 분할 메모리에 고정된 공간에서 동적인 할당을 받고, 메모리가 꽉차면 스왑아웃을 통해 그곳에 계속 프로세스가 스왑이 되므로, 외부 단편화(external fragmentation)이 발생 외부단편화를 극복하기 위해 메모리 집약(compaction) 사용프로세스들을 이동시켜 연속적으로 만들고 메모리의 모든 빈공간은 한블럭이 된다. - Dynamic partitioning place..
교착상태(Deadlock): 멀티프로세싱 환경에서 여러 프로세스가 간섭하여 생기는 문제-> 다수의 프로세스가 특정자원의 할당을 무한정 기다리고 있는 상태 Deadlock의 조건1. Mutual exclusion: 한번에 오직 하나의 프로세스만 자원을 사용가능2. Hold-and-wait: 프로세스가 할당된 자원을 점유하고 다른 프로세스가 반납하는걸 기다리는 상태3. No preemption: 프로세스의 할당된 자원은 강제로 빼앗을수 없다.4. Circular wait: 프로세스 자원요구가 순환적 Deadlock Prevention(데드락 예방): deadlock이 발생할 4가지 조건중 하나라도 제거하자1. Mutual Exclusion - 사용하지 않음/동시접근 허락되지 않음2. Hold and Wait..
세마포어(Semaphore) Concurrency 문제를 해결하기 위해 semaphore 사용즉, 공유된 자원에 여러 프로세스들이 동시에 접근하면서 문제가 발생하는데,공유된 자원 속 하나의 데이터는 한번에 하나의 프로세스만 접근할수있도록 만들기 위해 사용 Semaphore : integer variable s3가지 연산만 사용 가능- Initialization operation : 음수가 아닌 값으로 초기화- Wait operation : s--- Signal operation : s++ ■ semWait(s)- 세마포어 값 감소- 만약 값이 음수가 되면 프로세스는 블럭(대기)한다- 음수가 아니면 프로세스는 계속 수행한다. ■ semSigna(s)- 세마포어 값 증가- 만약 값이 양수가 아니면 semWa..
병행성(concurrency)정의 : 여러개의 프로세스(또는 스레드)가 동시에 실행되는 시스템의 특성 병행 프로세스의 문제점1. 프로세스간 동기화 문제: 프로세스들이 공유 자원을 동시에 사용할 수 없게 프로세스끼리 순서를 맞춰서 임계구역에 입장해야한다.2. 결정성 문제: 프로세스의 실행순서에 따라 결과값이 달라져선 안된다.3. 교착상태: 문제점을 해결하지 못해 아무것도 못하는 상황concurrency 관련 꼭 알아야 할 용어** deadlock: 교착상태/ 한정된 자원을 여러 곳에서 사용할때 발생/ 무한대기상태** race condition: 한정된 자원을 동시에 이용하려는 여러 프로세스가 서로 경쟁하는 상황**starvation: 기다리는 결과를 예방하기 위해 자원할당할때 발생하는 결과**critica..
process는 실행중인 프로그램 Thread는 경량화된 프로세스/ 프로세스 내에서 실제 작업을 수행 모든 프로세스는 하나의 스레드를 가지며,여러개의 스레드 즉 멀티쓰레드가 가능하다. 장점- 응답시간 단축- 시스템 처리량 향상- 프로세스의 자원과 메모리 공유함으로써 자원소모 줄임 단점- 다른 프로세스에서는 스레드를 제어할 수 없다.- 여러개의 스레드를 사용할때는 자원공유의 문제가 발생 JAVA Thread code보통 한개의 프로세스는 한가지 일을 하지만, 이 쓰레드를 이용하면 한 프로세스 내에서 두기지 이상의 일을 동시에 할 수 있게 된다.
Process Switching 일어나는 경우- Interrupt- Trap- Supervisor call ■ Interrupt- Clock interrupt: 일정시간 간격으로 걸리는 인터럽트- I/O interrupt: I/O 반응때 일어나는 인터럽트- Memory fault: 메모리주소가 가상메모리에 있어서 메인메모리로 옮겨야 할때 ■ Trap- 에러 또는 예외발생 할때 ■ Supervisor call(System call)- 명백한 요청일때ex)파일 오픈 mode switching- 사용자 모드에서 커널모드로 변경할때 발생- 완전 문맥 전환이 필요하지 않아 시스템 스택 사용 process switching- 현재 실행중인 프로세스를 중단하고 새 프로세스를 실행할때 발생- 완전 문잭 전환
Process 정의- 수행중인 프로그램- 컴퓨터상에서 수행중인 프로그램의 인스턴스- processor에 할당되고 수행되는 객체 PCB(Process Control Block): 운영체제가 다중 프로세스들을 지원하고 멀티프로세싱을 위해 제공하도록 하는 주요한 도구이다.- process 요소들을 포함- 운영체제에 의해 생성되고 관리- 다중프로세스 지원 ■ Process States - Dispatcher : 한 프로세스에서 다른 프로세스로 processor를 바꾼다.■ Swappingprocessor는 입출력장치보다 빠르다. 그래서 모든 프로세스들은 기다려야한다 해결책 -> Swapping: 모든 또는 일부분의 프로세스를 메인메모리에서 디스크로 이동한다.: 좀더 메모리를 이용하기 위해스왑 했을때 blocke..
운영체제의 목적 1. 편의(Convenience)2. 효율(Efficiency)3. 진화능력(Ability to evolve) ■ Convenience 운영체제가 제공하는 서비스1. 프로그램 개발(program development)2. 프로그램 실행(program execution)3. 입출력장치 접근(Access to I/O devices)4. 파일처리(Controlled access to files)5. 시스템 접근(System access)6. 에러검출 및 응답(Error detection and response)7. 관리(accounting) ■ Efficiency- Resource Manager- 운영체제도 일반 컴퓨터 소프트웨어처럼 작동한다. ■ Ability to evolve- 하드웨어 업..